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

标签 ios uikit uikeyboard uiinputviewcontroller

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

我的键盘的文本字段可以通过 becomeFirstResponder 获得焦点我可以通过使用 resignFirstResponder 放弃它.但是,在我放弃焦点后,尽管触摸了表单,但主机应用程序很难重新获得焦点。该应用程序的文本字段仍将显示文本光标闪烁。

有任何想法吗?谢谢

最佳答案

解决方案是一种 hack,到目前为止,您还不能真正将主机应用程序的焦点重新归还给主机应用程序。

  • 子类 UITextField并在其委托(delegate)上实现textFieldShouldBeginEditing通过返回 NO .
  • 添加 BOOL房产 isSelected设置为 YEStouchesBegan (不要与默认的 selected 属性混淆)
  • 在您键盘的 keyPressed方法,如果 searchField.isSelected ,操纵searchField.text .否则,操纵 textDocumentProxy像平常一样。
  • 添加 clear删除的按钮和方法searchField.textsearchField.isSelected , 允许任何进一步的击键返回到 textDocumentProxy
  • 添加复制闪烁类型光标的动画
  • 关于iOS自定义键盘无法将焦点返回到应用程序的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31799800/

    相关文章:

    swift - 为什么计算键盘尺寸有时会产生零高度

    ios - 当按下带有 html 目标 ="_blank"的链接时,用于 navigationAction 函数的 WKWebView 不会从另一个 swift 类调用

    ios - 被admob广告单元ID中的 "/"和 ":"搞糊涂了

    iphone - 如何取消 UIView setAnimationDelegate 上的委托(delegate) : call?

    swift - 使用选择矩形(:) with UITextField subclass

    swift - 创建自定义 UIKeyboard 应用内

    ios - 快速切换 UITableView 中的自定义单元格

    ios - 地理围栏消防进出延时后

    swift - 暂停和重新启动动画

    ios - 触摸 UITextField 之外的任何地方时如何关闭键盘(快速)?