Токенайзер UITextInput, для чего он используется?
Я реализую пользовательский вид ввода текста, который принимает UITextInput
протокол, при использовании UITextView
, дважды нажмите слово, чтобы выбрать слово, интересно, как UITextInput
используйте его токенизатор для токенизации строки, к настоящему времени я не видел никакой разницы с или без назначения токенизатора для UITextInput путем перезаписи [UITextInput -tokenizer]
метод.
1 ответ
Он используется для таких вещей, как навигация с помощью клавиатуры (когда у вас подключена аппаратная клавиатура). Например, перемещаясь между словами, удерживая Option и используя клавиши со стрелками, переходите к началу / концу строки.
Из текстового руководства по программированию Apple для iOS:
Токенайзеры - это объекты, которые определяют, находится ли текстовая позиция внутри или на границе текстового блока с заданной гранулярностью. При запросе системой ввода текста токенизатор возвращает диапазоны текстовых единиц с заданной гранулярностью или граничную позицию текста для текстовой единицы с заданной гранулярностью. В настоящее время определены гранулярности: символ, слово, предложение, абзац, строка и документ; enum-константы типа UITextGranularity представляют эти гранулярности. Гранулярность текстовых блоков всегда оценивается со ссылкой на направление хранения или макета.
Система ввода текста использует токенизатор различными способами. Например, клавиатуре может потребоваться контекст последнего предложения, чтобы выяснить, что пытается ввести пользователь. Или, если пользователь нажимает клавишу со стрелкой вправо (на внешней клавиатуре), текстовая система запрашивает токенизатор, чтобы найти информацию, необходимую для перехода к предыдущему слову.