ОК. Я посмотрел и посмотрел, и мне кажется, что мне чего-то не хватает в пользовательских клавиатурах и вставке текста в UITextField
. Как и многие люди, я создаю пользовательскую клавиатуру UIView
со своим собственным набором клавиш на пользовательском UIButtons
. Затем я назначаю это представление для inputView
UITextField, и затем моя клавиатура появляется, когда это текстовое поле становится первым респондентом. Внутри клавиатуры я фиксирую действия кнопок и переводю их в нажатия клавиш.
Но отсюда я озадачен тем, как лучше всего отправить мои нажатия клавиш в текстовое поле. Я видел множество примеров, таких как Обновление пользовательской клавиатуры iOS в текстовом поле в родительском представлении и Возврат входных данных в поле UIText с пользовательским представлением ввода и Как вставить значение ключа в UITextView из пользовательской клавиатуры В iOS , где решение, по-видимому, заключается в том, чтобы вставить указатель на цель UITextField
внутри пользовательского представления.
Это не кажется мне правильным, так как для нескольких UITextFields
либо мне приходится вручную изменять ссылки на одной пользовательской клавиатуре всякий раз, когда новое текстовое поле становится первым респондентом, либо мне приходится носить с собой соответствующие пользовательские настройки. клавиатура для каждого текстового поля, которое я хочу поддерживать.
Мне кажется, что клавиатура должна просто переводить касания в токены и отправлять эти токены вверх по линии, чтобы их интерпретировал тот, кто их получает (первый респондент?). iPad для разработчиков iPhone 101 Учебное пособие по пользовательскому вводу , кажется, делает это, но создает собственный протокол для этого. Я представляю (на самом деле SWAG - Scientific Wild Arsed Guess), что стандартные клавиатуры iOS работают таким же образом, но используют специальный протокол для передачи нажатий клавиш. Поэтому я хочу вручную создать ту же цепочку событий / сообщений, что и стандартная клавиатура.
Так как я могу это сделать? Или я могу даже сделать это с публичными API? Или работа стандартных клавиатур слишком тесно связана с UITextField?