【问题标题】:Check if input text is empty in custom keyboard for iOS 8检查 iOS 8 的自定义键盘中的输入文本是否为空
【发布时间】:2014-08-22 09:58:05
【问题描述】:

我正在为 iOS 8 开发一个自定义键盘,我想检查输入文本是否为空,以便在需要时启用或禁用返回键按钮 (self.textDocumentProxy.enablesReturnKeyAutomatically == YES)。

这是我到目前为止所做的:

- (void)textDidChange:(id<UITextInput>)textInput
{
    NSString *inputText = [self.textDocumentProxy.documentContextBeforeInput stringByAppendingString:self.textDocumentProxy.documentContextAfterInput];

    if (self.textDocumentProxy.enablesReturnKeyAutomatically)
    {
        self.returnButton.enabled = !(inputText.length == 0);
    }
    else
    {
        self.returnButton.enabled = YES;
    }
}

但如果“自动启用返回键”为 ON,则返回按钮始终处于禁用状态,即使输入文本不为空。检查输入文本是否为空的正确方法是什么?谢谢。

【问题讨论】:

  • 小心'documentContextBeforeInput'和'documentContextAfterInput',两者都可能是'nil'
  • @Bersaelor 当然,感谢您的提示。
  • 嗨,我们可以检测从自定义键盘输入的单词吗?

标签: ios objective-c ios8 ios-app-extension custom-keyboard


【解决方案1】:

试试这个,再测试一次

在下面执行 deleteBackward 操作的函数中禁用返回键

- (IBAction)returnBackSpacePressed
{
    [self.textDocumentProxy deleteBackward];

    if(self.textDocumentProxy.documentContextBeforeInput.length-1 == 0)
     {
       [self.textDocumentProxy insertText:@"Now disable your return key"];
       // Here your inputTest is now empty
     }
}

在您插入测试时结束启用您的返回键

- (void)putChar:(NSString *)charactor
{
   [self.textDocumentProxy insertText:charactor];
// enable your return key here again, because now your inputText is not empty
}

【讨论】:

  • 谢谢。您的回答帮助我解决了我的问题。
  • 嗨,我们可以检测从自定义键盘输入的单词吗?
  • 对我来说 if (self.textDocumentProxy.documentContextBeforeInput.length == 0) after [self.textDocumentProxy insertText:charactor];
猜你喜欢
  • 2014-11-24
  • 2014-08-11
  • 2022-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 2018-10-26
相关资源
最近更新 更多