谁发出我的UIKeyboardDidHideNotification?

时间:2013-11-11 13:34:47

标签: ios uiviewcontroller nsnotifications

我想注册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

2 个答案:

答案 0 :(得分:0)

UIKeyboardDidHideNotification的对象始终为nil。尝试在viewWillAppear中添加观察者并删除viewDidDisapper方法。

答案 1 :(得分:0)

您无法注册来自特定控制器的UIKeyboardDidHideNotification。

如果使用UIKeyboardWillHideNotification,您可以检查控制器内的其中一个UITextView是否是第一个响应者。

使用UIKeyboardDidHideNotification我猜您需要为所有UITextView使用委托方法并保存最后编辑过的方法。我没有想到任何其他选择。

否则,如果问题是仅在可见控制器上执行UIKeyboardDidHideNotification调用的方法,@ sviatoslav-yakymiv的解决方案效果很好。