键盘在弹出窗口关闭后被锁定

KeyBoard gets locked after popover dismissal

viewcontroller 中有多个文本字段,其中一些是自定义的(点击这些文本字段将启动一个弹出框控制器,从该用户可以 select 该选项将显示在点击文本框)。

我在视图控制器上有一个用于关闭键盘的点击手势(如果它在屏幕上)。

当我在点击自定义文本字段时打开弹出控制器时,键盘被锁定(如果它可见)。即使我点击父视图或键盘上的关闭按钮,键盘也不会关闭。

我已经尝试了这 2 个片段来隐藏键盘,但它不起作用

[self.scrollView endEditing:YES];
[[[UIApplication sharedApplication] keyWindow] endEditing:YES];

您可以使用文本字段委托来防止它显示键盘,而是通过实现此 textFieldShouldBeginEditing 方法自己显示弹出窗口

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    if(textField == myCustomTextField) {
        [self openCustomPopover];
        return NO;
    }
    return YES;
}

更多关于它的委托方法https://developer.apple.com/library/ios/documentation/UIKit/Reference/UITextFieldDelegate_Protocol/index.html#//apple_ref/occ/intfm/UITextFieldDelegate/textFieldShouldBeginEditing: