检查 iOS 8 的自定义键盘中的输入文本是不是为空

Posted

技术标签:

【中文标题】检查 iOS 8 的自定义键盘中的输入文本是不是为空【英文标题】: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 当然,感谢您的提示。 嗨,我们可以检测从自定义键盘输入的单词吗? 【参考方案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];

以上是关于检查 iOS 8 的自定义键盘中的输入文本是不是为空的主要内容,如果未能解决你的问题,请参考以下文章

iOS应用程序中的自定义数字键盘问题

IOS 8:带有撤消和重做按钮的自定义键盘

自定义键盘文本完全替换 UISearchBar 中的文本,而不是添加到其中 [iOS]

iOS 8 横向纵向模式下的自定义键盘

自定义键盘:从输入视图中获取文本

iphone中的自定义键盘