我已经设计了一个自定义的键盘扩展,可以正确输入文本。但是我似乎无法弄清何时启用大写键盘和小写键盘。这主要是因为以下函数不能正确返回之前/之后输入的文本。有时它们会返回nil,有时只返回最后几个字符等。很多时候这些方法根本没有被调用。
- (void)textWillChange:(id<UITextInput>)textInput
- (void)textDidChange:(id<UITextInput>)textInput
我已经找到了需要启用大写键盘的以下场景:
- 文本长度为0或空
- 输入句号时,我需要添加一个空格和大写键盘
- 当光标放置在一个位置时,在光标之前的字符是句号或空格,并且在其之前是句号。
- 当用户选择整个文本“全选”时
- 当用户选择整个文本并删除所有内容时
- 当用户使用退格键并且光标前面的新字符是句号或空格,并且在其之前是句号。
- 当用户粘贴文本并且光标前面的字符是句号或空格,并且在其之前是句号。
此外,如果以上操作可行,是否还可以获取最后输入的“完整”单词,以便可以将其用于字典搜索,例如自动预测文本?
我已阅读了苹果文档,其中指出用户期望自动大写字母,因此我相信这应该是可能的。