11

在我的 iOS 键盘应用程序中,我目前有一个文本建议栏,很像默认的 iOS 8 键盘的建议栏。每当用户执行清除文本字段的操作时(例如,当有人点击“发送”时,我想清除建议栏上的所有文本每当用户执行清除文本字段的操作时(例如,当有人在 iMessage 或 Whatsapp 上

由于点击“发送”不是击键,我想知道是否有办法在清除文本字段时从键盘检测。

我曾尝试检测空文本""或换行"\n",但到目前为止这还没有奏效。

编辑:我知道这可以通过第 3 方 iOS 键盘实现,如此处所示(来自Themeboard

在点击发送之前,请注意建议栏中的文本。
在点击发送之前

点击“发送”后立即。建议栏被清除。
点击发送后

4

1 回答 1

11

在消息中按下发送按钮时,textDidChange:将在您的子类上调用回调UIInputViewController。此时,子类属性的documentContextAfterInputdocumentContextBeforeInput属性都将为 nil 或空字符串。虽然您知道文本字段被清除的原因,但您可能可以推断大多数发生这种情况的情况,您应该清除当前的下一个单词预测。UIInputViewControllertextDocumentProxy

- (void)textDidChange:(id<UITextInput>)textInput
{
    if ((!self.textDocumentProxy.documentContextBeforeInput && !self.textDocumentProxy.documentContextAfterInput) || ([self.textDocumentProxy.documentContextBeforeInput isEqualToString:@""] && [self.textDocumentProxy.documentContextAfterInput isEqualToString:@""])){
        //Implement code to clear the banner
        [self.keyboard.lblBanner setText: @""];
    }
}
于 2015-07-23T01:43:39.733 回答