这个解决方案接收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 通常是放置这样的代码的好地方。

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