我想注册UIKeyboardDidHideNotification
只发出我的UIViewController。
当我这样做时:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:self];
我没有收到keyboardDidHide:
的任何电话,当我这样做时:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardDidHide:) name:UIKeyboardDidHideNotification object:nil];
我正在接收来自所有其他视图控制器的呼叫以及我自己的呼叫。
如何注册仅由特定视图控制器引发的UIKeyboardDidHideNotification
?
答案 0 :(得分:0)
UIKeyboardDidHideNotification
的对象始终为nil
。尝试在viewWillAppear
中添加观察者并删除viewDidDisapper
方法。
答案 1 :(得分:0)
您无法注册来自特定控制器的UIKeyboardDidHideNotification。
如果使用UIKeyboardWillHideNotification,您可以检查控制器内的其中一个UITextView是否是第一个响应者。
使用UIKeyboardDidHideNotification我猜您需要为所有UITextView使用委托方法并保存最后编辑过的方法。我没有想到任何其他选择。
否则,如果问题是仅在可见控制器上执行UIKeyboardDidHideNotification调用的方法,@ sviatoslav-yakymiv的解决方案效果很好。