Пользовательское расширение клавиатуры с помощью UITextField
У меня есть собственное расширение клавиатуры с UITextField в нем. Я могу переключиться на UITextField
ввод текста, но не может переключиться обратно на self.textDocumentProxy
, Кто-нибудь знает, как сделать что-то вроде [self.textDocumentProxy becomeFirstResponder]
?
(Кстати, похоже, приложение "GIF Keyboard" предоставляет такую возможность)
1 ответ
Я реализовал следующий обходной путь для этого:
мой
textFied
наследуется отUITextField
,UserInteraction
отключен, чтобы предотвратитьbecomeFirstResponder
(потому что вы не можете вернуться к системному вводу). Я добавил миганиеUIView
как имитация курсора ( мигающая анимация). Изменить этот курсорorigin.x
в переписанномsetText:
метод расчета длины текущей строки (используйтеboundingRectWithSize:
метод для этого).Когда пользователь что-то печатает, я проверяю,
textField
активен (показан) и затем добавляет / удаляет символыtextField
(сsetText:
) или жеself.textDocumentProxy
insertText:
/deleteBackward
методы соответственно.