gpt4 book ai didi

ios - 自定义 UITextInput 实现不显示多阶段输入建议

转载 作者:可可西里 更新时间:2023-11-01 05:44:42 32 4
gpt4 key购买 nike

我有一个自定义的基于 UITextInput 的文本编辑器。它工作得很好,除了通过标记文本进行多阶段输入。

我的标记区域正确呈现,并且插入了标记文本,但键盘上方的候选列表是空白的。

例如,这是在标准 UITextView 上显示建议的日文(假名)键盘:

Default Marked Text

这是我的自定义编辑器,显示相同的标记文本:

enter image description here

我花了几天时间调试这个问题,发现原因是私有(private)类 UIKeyboardImpl 返回 NO 方法 delegateSupportsCorrectionUI

如果我在 UIKeyboardImpl 的类别中重写此方法并改为返回 YES,那么多级输入建议会正确显示给我的文本编辑器。然而,这并没有解决问题的根本原因(而且它不可用)。

我还仔细研究了 Apple 的 SimpleTextInput 示例代码。这实现了一个基本的 Core Text 编辑器。 SimpleTextInput 正确显示多级输入建议,但我似乎无法在它的 UITextInput 实现中找到导致它工作和我的中断的单一差异。

(事实上,我无法“破坏”SimpleTextInput 示例显示多阶段输入的能力。这让我认为我对 UITextInput 实现的关注是错误的轨道。并且这完全是另一回事。)

最佳答案

好吧,这有点尴尬。我刚刚注意到:

@property(nonatomic, readonly) UIView *textInputView

Discussion

The view that both draws the text and provides a coordinate system for all geometric values in this protocol. (This is typically an instance of the UITextInput-adopting class.) If this property is unimplemented, the first view in the responder chain is selected.

在文档中。

我愚蠢地 @synthesize 了这个属性并忘记了它,这意味着我的 UITextInput 实现返回了一个 nil textInputView。简单地让它未实现会从响应链中选择第一个 View ,如所述,它为文本系统提供必要的坐标系来处理自动更正和多级输入建议。

这是经过三天的调试。现在我觉得自己很愚蠢。

关于ios - 自定义 UITextInput 实现不显示多阶段输入建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20247796/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com