gpt4 book ai didi

iOS 自定义键盘扩展自动大写

转载 作者:技术小花猫 更新时间:2023-10-29 10:53:05 25 4
gpt4 key购买 nike

我设计了一个自定义键盘扩展,我能够正确输入文本。但是我似乎无法弄清楚何时启用大写键盘以及何时启用小写字母。这主要是因为以下函数没有正确返回已经输入的前/后文本。有时它们会返回 nil,有时只会返回最后几个字符等。很多时候这些方法甚至根本不会被调用。

- (void)textWillChange:(id<UITextInput>)textInput 

- (void)textDidChange:(id<UITextInput>)textInput

当我需要启用大写键盘时,我想到了以下情况:

  1. 文本长度=0 或 nil
  2. 输入句点时,我需要添加一个空格和大写键盘
  3. 当光标放置在光标之前的字符是句点或空格且之前是句点的位置时。
  4. 当用户选择整个文本时“全选”
  5. 当用户选择了整个文本并全部删除
  6. 当用户退格并且光标之前的新字符是句点或空格并且之前是句点时。
  7. 当用户粘贴文本时,光标前的字符是句号或空格,而在这之前是句号。

此外,如果上述可行,是否也可以获取最后输入的“完整”单词,我可以将其用于字典搜索,如预测打字?

我已经阅读了 apple 文档,其中指出用户希望自动大写,所以我相信这应该是可能的

https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html

最佳答案

例如textField 被命名为您的 UITextField 实例。初始化后放这个。

textField.autocaptializationType = UITextAutocapitalizationTypeSentences

在您提到的所有情况下,这应该为您提供大写字母。

确定让您的自定义键盘采用 UITextInputTraits 协议(protocol),执行以下操作。

@interface MyCustomKeyboard : UITextInput <UITextInputTraits> //Now adopts the UITextInputTraits protocol.

- (instancetype)init {
self = super.init;

if(self) {
//Here you can set the properties that come with the protocol
self.autocapitilizationType = UIAutocapitalizationTypeSentences;

}
}

关于iOS 自定义键盘扩展自动大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34571366/

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