使用 NSNotificationCenter 捕获按键事件
-
27-09-2019 - |
题
这个解决方案接收iPhone键盘事件
提供了一种使用通知中心捕获按键事件的方法。
[[NSNotificationCenter defaultCenter] addObserver:自选择器:@selector(keyPressed:) 名称:UITextFieldTextDidChangeNotification 对象:零];
[[NSNotificationCenter defaultCenter] addObserver:自选择器:@selector(keyPressed:) 名称:UITextViewTextDidChangeNotification 对象:零];
........
-(无效)按键:(nsnotification*)通知{nslog([[[notification object] text]));}
它工作正常,但是对于从键盘上按下的每个键, keyPressed 函数都会被调用 3 次。
这是正常现象还是我做错了什么?
特奥
解决方案
每次按下按键时,通知只应出现一次。至少这是我在测试时得到的。我唯一能想到的是你在打电话 addObserver:selector:name:object:
三次。
也许您正在多个视图控制器中执行此操作,但忘记调用 removeObserver:name:object:
?
或者你正在打电话 addObserver:selector:name:object:
在一个被调用多次的函数中? viewDidLoad
通常是放置这样的代码的好地方。
不隶属于 StackOverflow