键盘扩展 documentContextAfterInput 不同步
Keyboard extension documentContextAfterInput out of sync
我们正在开发键盘扩展,我在 microsoft office word 上遇到了这个奇怪的错误(我们还没有在其他任何地方看到它......)从 super.textDocumentProxy.documentContextAfterInput
收到的文本只是与当前光标位置不同步。
我什至不知道这是怎么可能的,但结果非常一致。
- 我们写:'Tom'
- Select建议'Tomorrow'
- Select 下一个建议 'he'
在第 3 步开始时,光标应位于 'Tomorrow |'(光标标有“|”),但 documentContextAfterInput 将为“\0”。现在我可以处理了,但是如果我继续从建议中插入文本,我们会从文本中得到 1 个随机字符,而不是它实际应该是的字符(nil 或空)。问题是 afterInput 与当前光标位置完全不一致。我什至尝试将光标移动到文本的开头,然后再移动到结尾(结果相同)。
幸运的是,BeforeInput 方法完美运行...
现在,如果有任何关于如何解决、修复或解释此问题的建议,我们将不胜感激。
编辑:
我开始怀疑这是由于字符编码或微软回车 return 不知何故被破坏了。
多个问题是导致此问题的原因。第一:微软确实使用了某种隐藏字符。第二:iOS 应用程序对如何处理 movecursor 有一些控制,这可能与键盘扩展期望它的工作方式发生冲突。这通常不会产生任何重大问题,因为大多数键盘扩展都相当简单,但如果您喜欢我们进行复杂的文本分析和处理,您会遇到一些错误行为。
我们正在开发键盘扩展,我在 microsoft office word 上遇到了这个奇怪的错误(我们还没有在其他任何地方看到它......)从 super.textDocumentProxy.documentContextAfterInput
收到的文本只是与当前光标位置不同步。
我什至不知道这是怎么可能的,但结果非常一致。
- 我们写:'Tom'
- Select建议'Tomorrow'
- Select 下一个建议 'he'
在第 3 步开始时,光标应位于 'Tomorrow |'(光标标有“|”),但 documentContextAfterInput 将为“\0”。现在我可以处理了,但是如果我继续从建议中插入文本,我们会从文本中得到 1 个随机字符,而不是它实际应该是的字符(nil 或空)。问题是 afterInput 与当前光标位置完全不一致。我什至尝试将光标移动到文本的开头,然后再移动到结尾(结果相同)。
幸运的是,BeforeInput 方法完美运行...
现在,如果有任何关于如何解决、修复或解释此问题的建议,我们将不胜感激。
编辑: 我开始怀疑这是由于字符编码或微软回车 return 不知何故被破坏了。
多个问题是导致此问题的原因。第一:微软确实使用了某种隐藏字符。第二:iOS 应用程序对如何处理 movecursor 有一些控制,这可能与键盘扩展期望它的工作方式发生冲突。这通常不会产生任何重大问题,因为大多数键盘扩展都相当简单,但如果您喜欢我们进行复杂的文本分析和处理,您会遇到一些错误行为。