我正在尝试在键盘出现时收到通知,但我遇到的情况是我有2个UITextView并且需要能够区分它们。出于某种原因,我无法弄清楚如何使用“addObserver”的object参数来过滤它。我有这样的事情:
UITextView* w = mSubview.mText;
NSNotificationCenter* dnc = [NSNotificationCenter defaultCenter];
[dnc addObserver:self selector:@selector(showNotesKeyboard:) name:UIKeyboardWillShowNotification object:w ];
每当我指定w
时,我都不会输入showNotesKeyboard
。只有当我通过nil
时才会收到通知。我必须在这里找到一些东西,请帮助我。
谢谢!
答案 0 :(得分:2)
您可以在文本视图开始编辑时添加观察者吗?编辑将显示键盘。
UITextView* w = mSubview.mText;
[w addTarget:self action:@selector(showNotesKeyboard:) forControlEvents:UIControlEventEditingDidBegin];
答案 1 :(得分:1)
根据我的说法,只有当它为零时才会被调用,因为它是系统生成的通知,只有在为其中一个类创建自定义通知时才能指定对象。我的意思是当你自己发布这个通知时。
答案 2 :(得分:1)
这是文档中对UIKeyboardWillShowNotification的讨论
在显示键盘之前立即发布。
通知对象为零。 userInfo字典包含 有关键盘的信息。使用“键盘”中描述的键 通知用户信息键“获取的位置和大小 userInfo字典中的键盘。
因此,如果您指定nil之外的发件人对象,则不会收到任何通知。如果您想知道哪个UITextView处于活动状态,您可以检查哪个是第一个响应者。