1

我想注册到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仅由特定视图控制器提出的?

4

2 回答 2

0

对象UIKeyboardDidHideNotification永远是nil。尝试viewWillAppear在方法中添加观察者和删除viewDidDisapper

于 2013-11-11T13:39:37.450 回答
0

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

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

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

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

于 2013-11-11T14:38:50.200 回答