UIScrollView 键盘在拖动时关闭不会在 iOS 11 上使用自定义 inputView 键盘在 UIView 上调用 resignFirstResponder

Mof*_*Mof 5 keyboard uiscrollview ios inputview

我有UIView一个签名。签名是通过签名视图上的自定义 inputView 输入的。在绘制签名视图时,我利用它是第一响应者这一事实来突出显示正在编辑的视图,并且我还覆盖了该resignFirstResponder方法以计算何时停止将其显示为正在编辑。

所以代码看起来像这样:

@implementation SignatureView 

-(BOOL) becomeFirstResponder {
    BOOL result = [super becomeFirstResponder];
    [self showEditingMode];
    return result;
}

-(BOOL) resignFirstResponder {
    BOOL result = [super resignFirstResponder];
    [self showViewingMode];
    return result;
}

-(UIView *) inputView {
    if (!keyboard)
      keyboard = [[SignatureKeyboardView alloc] initWithStuff:stuff....];
    return keyboard;
}

@end
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,在 iOS 11 上,resignFirstResponder不再调用该方法。在以前版本的 iOS 上,它曾经被调用,然后我可以更改 UI 以显示它不再被编辑。

这仅在UIScrollView设置为拖动时关闭键盘时发生,并且用户拖动UIScrollView. 如果用户改为点击UIView可以成为第一响应者的另一个,例如 a UITextFieldresignFirstResponder则被调用。

我是否遗漏了 iOS11 中更改的某些内容或遇到了错误?