不调用 NSNotification keyBoardWillShow 和 keyboardWillHide

NSNotification keyBoardWillShow and keyboardWillHide are not called

我有一个带有自定义视图的 xib 文件,其中有许多文本字段子视图。我已经将每个文本字段的委托设置为文件所有者,并且能够成功地使用 texfield 委托方法。但不幸的是,键盘通知方法 keyboardWillShow: 和 keyboardWillHide: 根本没有被调用。

我在 textfieldShouldBeginEditing 添加了观察者并在 textFieldDidEndEditing 移除了观察者。

这是我的代码片段:

添加观察者

-(void) textFieldShouldBeginEditing : (UITextField *) textField{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
}

正在删除观察者

-(void) textFieldDidEndEditing : (UITextField *) textField{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}

//通知方式

- (void)keyboardWillShow:(NSNotification *)notification
{
NSLog(@"Here");
}

- (void)keyboardWillHide:(NSNotification *)notification
{
NSLog(@"There");
}

//不调用任何 keyboardwillShow 和 keyboardWillHide。

如果有人能帮助我找出我的代码问题或我可能遗漏的任何底层问题,那就太好了。

当您通过编辑 textView 显示键盘时,您正在添加观察者。它不会调用,因为键盘已经显示。您应该在 viewWillAppear 上添加观察者并删除 viewWillDisappear 方法。