iOS 自定义键盘无法 return 聚焦到应用的文本字段
iOS Custom keyboard can't return focus to app's textfield
我正在为 iOS 开发自定义键盘,它将有自己的搜索字段(类似地由 PopKey 实现)。
我的键盘的文本字段可以使用 becomeFirstResponder
获得焦点,我可以使用 resignFirstResponder
放弃它。但是,在我放弃焦点之后,尽管触摸了表单,但主机应用程序却很难重新获得焦点。应用程序的文本字段仍会显示闪烁的文本光标。
有什么想法吗?谢谢
解决方案是黑客攻击,截至目前,您无法真正将焦点移回宿主应用程序。
子类 a UITextField
及其委托实现
textFieldShouldBeginEditing
通过 returning NO
.
添加一个 BOOL
属性 isSelected
在 touchesBegan
中设置为 YES
(不要与默认值混淆selected
属性)
- 在键盘的
keyPressed
方法中,如果 searchField.isSelected
,请操作 searchField.text
。否则,像往常一样操作 textDocumentProxy
。
- 添加一个
clear
按钮和擦除 searchField.text
和 searchField.isSelected
的方法,允许任何进一步的击键 return 到 textDocumentProxy
- 添加复制闪烁类型光标的动画
我正在为 iOS 开发自定义键盘,它将有自己的搜索字段(类似地由 PopKey 实现)。
我的键盘的文本字段可以使用 becomeFirstResponder
获得焦点,我可以使用 resignFirstResponder
放弃它。但是,在我放弃焦点之后,尽管触摸了表单,但主机应用程序却很难重新获得焦点。应用程序的文本字段仍会显示闪烁的文本光标。
有什么想法吗?谢谢
解决方案是黑客攻击,截至目前,您无法真正将焦点移回宿主应用程序。
子类 a
UITextField
及其委托实现textFieldShouldBeginEditing
通过 returningNO
.添加一个
BOOL
属性isSelected
在touchesBegan
中设置为YES
(不要与默认值混淆selected
属性)- 在键盘的
keyPressed
方法中,如果searchField.isSelected
,请操作searchField.text
。否则,像往常一样操作textDocumentProxy
。 - 添加一个
clear
按钮和擦除searchField.text
和searchField.isSelected
的方法,允许任何进一步的击键 return 到textDocumentProxy
- 添加复制闪烁类型光标的动画