iOS Make Custom Keyboard Generate Standard Key Strokes For UITextField

OK Я искал и искал, и мне кажется, я что-то упускаю о пользовательских клавиатурах и вставке текста в UITextField. Как и многие другие, я создаю пользовательскую клавиатуру UIView с собственным набором клавиш на пользовательских UIButton. Затем я назначаю это представление inputView для UITextField, и тогда моя клавиатура всплывает, когда это текстовое поле становится первым ответчиком. Внутри клавиатуры я фиксирую действия кнопок и перевожу их в то, что будет нажатием клавиш.

Но дальше я ломаю голову над тем, как лучше послать нажатия клавиш в текстовое поле. Я видел множество примеров вроде iOS Custom Keyboard Updating Text Field In Parent View и Return Inputs To UITextfield With Custom Inputview и How To Push Key Value Into UITextView From Custom Keyboard In iOS, где решение, похоже, заключается в том, чтобы встроить указатель на целевое UITextField внутри пользовательского представления.

Это не кажется мне правильным, поскольку для нескольких UITextFields либо мне придется вручную менять ссылки на одной пользовательской клавиатуре всякий раз, когда новое текстовое поле становится первым ответчиком, либо мне придется носить с собой соответствующую пользовательскую клавиатуру для каждого текстового поля, которое я хочу поддерживать.

Мне кажется, что клавиатура должна просто преобразовывать касания в лексемы и посылать эти лексемы вверх по линии, чтобы их интерпретировал тот, кто их получает (первый ответчик?). iPad For iPhone Developers 101 Custom Input View Tutorial, похоже, делает это, но создает для этого собственный протокол. Я предполагаю (на самом деле это SWAG - Scientific Wild Arsed Guess), что стандартные клавиатуры iOS работают подобным образом, но используют специальный протокол для передачи нажатий. Поэтому я хочу иметь возможность вручную генерировать ту же цепочку событий/сообщений, что и стандартная клавиатура.

Так как я могу это сделать? Или я могу сделать это с помощью общедоступных API? Или работа стандартных клавиатур слишком сильно привязана к UITextField?

7
задан Community 23 May 2017 в 10:29
поделиться