UITextInput: selectedTextRange против помеченного TextRange?

Хорошо, я знаю Apple UITextInput Протокол требует двух UITextRange свойства selectedTextRange а также markedTextRange и документация говорит, что selectedTextRange это поддиапазон markedTextRange который является неподтвержденным диапазоном текста пользователем yatta yatta. Это все еще не проясняет некоторые вещи относительно того, как я должен реализовать два текстовых диапазона по-разному. Может ли кто-нибудь визуально объяснить мне разницу между selectedTextRange а также markedTextRange? Я знаю, что когда length из selectedTextRange является 0 это указывает на мигающую карету в selectedTextRange "s location, Но какого чёрта это "помеченный текст"?? Я только видел следующее для текстовых представлений в iOS:

пример <code> selectedTextRange </ code selectedTextRange

Который я предполагаю, представляет текущий selectedTextRange, Что значит markedTextRange выглядит как? Или это в основном одно и то же? Я так растерялся:(Заранее спасибо за любую помощь! Документация оказалась бесполезной в моем понимании того, как реализовать UITextInput протокол.

РЕДАКТИРОВАТЬ

Осуществляет ли markedTextRange иметь какое-либо отношение к тому факту, что некоторый текст в представлении может быть "заметным", но "только для чтения" и selectedTextRange указывает поддиапазон в "отмеченном тексте", markedTextRange то есть readwrite?

1 ответ

Решение

Из документации Apple для UITextInput:

Помеченный текст, который является частью многоэтапного ввода текста, представляет собой предварительно вставленный текст, который пользователь еще не подтвердил. Он оформлен в особом стиле. Диапазон выделенного текста всегда содержит диапазон выделенного текста, который может быть диапазоном символов или кареткой.

следовательно markedTextRange становится полезным с языками, которые требуют многоступенчатого ввода, например, японский. Простыми словами: какие пользовательские типы еще предстоит подтвердить, прежде чем они могут быть добавлены к значению элемента управления вводом текста, были markedTextRange попадает в игру. GIF ниже демонстрирует markedTextRange В бою:

введите описание изображения здесь

Обратите внимание на небольшой сапфировый фон за неподтвержденными иероглифами. Как только текст подтверждается нажатием клавиши ввода / возврата, выбора опции из предложений или касанием пальцем области текста после добавления отмеченного текста к значению элемента управления вводом и удаления фона.

Заметки:

  • Помеченный TextRange не имеет ничего общего с текстом только для чтения
  • Мне не удалось добиться выбора нескольких символов в отмеченном текстовом поле
Другие вопросы по тегам