如何从iOS键盘扩展中检测到文本字段是通过类似iMessage中的“发送”操作清除的?
在我的iOS键盘应用程序中,我目前有一个文本build议栏,很像默认的iOS 8键盘的build议栏。 我想清除build议栏上的所有文本,只要用户做了一些清除文本字段的内容(例如,当有人在iMessage或Whatsapp上点击“ 发送 ”时)。
由于打“发送” 不是一个按键 ,我想知道是否有办法检测到从文本字段清除键盘时。
我试图检测空文本""
或新行"\n"
,但到目前为止这还没有奏效。
编辑:我知道这是可能的通过第三方iOS键盘,如在这里看到的情况下(这是从主板 )
点击发送之前,请注意build议栏中的文字。
点击“发送”后立即 build议栏被清除。
在Messages中按下发送button时,将在您的UIInputViewController
子类上调用textDidChange:
callback。 此时, UIInputViewController
子类的textDocumentProxy
属性的documentContextAfterInput
和documentContextBeforeInput
属性将为零或空string。 虽然你不知道为什么文本字段已被清除,但是大多数情况下可以推断出现这种情况的原因是你应该清除当前的下一个字词预测。
- (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: @""]; } }