使用 UITextField 自定义键盘扩展

Custom Keyboard extension with UITextField

我有带有 UITextField 的自定义键盘扩展。我可以切换到 UITextField 的文本输入,但无法切换回 self.textDocumentProxy。有人知道如何做 [self.textDocumentProxy becomeFirstResponder] 之类的事情吗?

(顺便说一下,"GIF Keyboard" 应用程序似乎提供了这种可能性)

我已经为此实施了下一个解决方法:

  1. 我的 textFied 继承自 UITextFieldUserInteraction 禁用以防止它 becomeFirstResponder (因为您无法切换回系统输入)。我添加了闪烁 UIView 作为光标模仿 (blinking animation)。通过计算当前字符串的长度(为此使用 boundingRectWithSize: 方法)在覆盖的 setText: 方法中更改此光标 origin.x

  2. 当用户键入内容时,我正在检查 textField 是否处于活动状态(显示),然后 adding/removing 符号变为 textField(使用 setText:)或 self.textDocumentProxy insertText:/deleteBackward 相应的方法。