【发布时间】:2013-11-27 16:25:47
【问题描述】:
我有一个基于UITextInput 的自定义文本编辑器。它工作得很好,除了通过标记文本进行多阶段输入。
我的标记区域正确渲染,并插入了标记文本,但键盘上方的候选列表为空白。
例如,这里是日文(假名)键盘在标准 UITextView 上显示建议:
这是我的自定义编辑器,显示相同的标记文本:
我花了几天时间调试这个问题,发现原因是私有类UIKeyboardImpl为方法delegateSupportsCorrectionUI返回NO
如果我在 UIKeyboardImpl 的类别中覆盖此方法并改为返回 YES,则多级输入建议会正确显示给我的文本编辑器。然而,这并没有解决问题的根本原因(而且它不可用)。
我还非常仔细地查看了 Apple 的 SimpleTextInput 示例代码。这实现了一个基本的核心文本编辑器。 SimpleTextInput 正确显示多级输入建议,但是我似乎无法在其实现 UITextInput 中找到任何区别,这会导致它工作而我的中断。
(事实上,我无法“破坏” SimpleTextInput 示例显示多阶段输入的能力。这让我认为我对 UITextInput 实现的关注是错误的。而且它完全是另外一回事.)
【问题讨论】:
标签: ios cocoa-touch uikeyboard uitextinput uitextinputtraits