iOS 自定义键盘无法将焦点返回到应用程序的文本字段

use*_*946 1 uikit uikeyboard ios uiinputviewcontroller

我正在为 iOS 开发一个自定义键盘,它将有自己的搜索字段(类似地由 PopKey 实现)。

我的键盘的文本字段能够通过使用 来获得焦点becomeFirstResponder,并且我能够通过使用 来放弃它resignFirstResponder。然而,在我放弃焦点后,尽管触摸了表单,主机应用程序仍很难重新获得焦点。应用程序的文本字段仍将显示文本光标闪烁。

有任何想法吗?谢谢

use*_*946 6

解决方案是一个 hack,到目前为止,您无法真正让主机应用程序重新获得焦点。

  • 子类 aUITextField并在其委托上 textFieldShouldBeginEditing通过返回实现NO

  • 添加一个设置为in的BOOL属性(不要与默认属性混淆)isSelectedYEStouchesBeganselected

  • 在键盘的keyPressed方法中,如果searchField.isSelected,操作searchField.text. 否则,textDocumentProxy像平常一样操纵。
  • 添加一个clear按钮和方法来擦除searchField.textsearchField.isSelected,允许任何进一步的击键返回到textDocumentProxy
  • 添加复制闪烁型光标的动画