所有的实施例中能找到建立通知的是这样的:

[NC的addObserver:自选择器:@selector(keyboardWillShow :)名:UIKeyboardWillShowNotification对象:无];

其中对象总是被设置为零。对象是notificationSender,其在文档中定义正是如此:

“的对象,其通知观察者想要接收;也就是说,只有通过该发件人发送的通知交付给观察者时为零,通知中心不使用通知的发送者来决定是否将其交付给观察者“。

我想接收键盘通知只针对一个特定的文本视图,所以我想告诉的addObserver这一点,但我不知道该怎么给它的对象。我试过,绑定到文本视图我感兴趣的出口变量,但只是导致我根本没有得到通知。

任何建议?

有帮助吗?

解决方案

UIKeyboardWillShowNotification从你的窗口实例的到来,并为所有意图和目的是“系统”的通知。键盘要么显示或不显示,它不是真正的东西,被绑定到特定的控制。

如果你想要做的事当用户输入一个特定的文本字段,你应该控制在文本字段的委托来代替。

其他提示

在这种情况下,你不能得到通知仅针对一个特定的文本视图,为UIKeyboardWillShowNotification的实况称“通知对象是零。”

您,如果您的特定文本视图isFirstResponder在你keyboardWillShow IMPL检查。

我有两个相互竞争的需要 - 我有,因为我需要让键盘的高度,这似乎是唯一可用的方法,可使用键盘的通知,但我还需要知道我是在文本视图,这意味着还使用textViewDidBeginEditing委托。经过一番瞎搞我终于祭出获得键盘高度的通知方法并将其存储在一个实例变量,这是当时提供的委托方法使用(我需要滚动视图了,因此底部文本视图是不是大多根据他们的键盘隐藏时,他们开始打字)。有点不雅,但它工作。

感谢您的指点!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top