iOS:如何检测使用 BT 键盘时按下的任何键

Posted

技术标签:

【中文标题】iOS:如何检测使用 BT 键盘时按下的任何键【英文标题】:iOS : How to detect any key pressed when use a BT keyboard 【发布时间】:2013-12-21 08:18:57 【问题描述】:

我必须在 iPad 上实现 ios 的制造商键盘测试应用程序。

我现在正在调查这个话题。

据此article

[_myUITextField becomeFirstResponder];
[_myUITextField addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventAllEvents];


-(IBAction)textFieldDidChange:(id)sender
    UITextField *_field = (UITextField *)sender;
    NSLog(@"%@",[_field text]);

使用这些代码,我可以检测到我在应用程序中按下的字母(如 1、2、3、a、b、c...),但不是所有按键都被按下(如 fn、ctl、cmd ...等?)

任何人都知道如何实现这一点...谢谢^^

【问题讨论】:

顺便说一句,我不在乎它是使用公共 API 还是私有 API。 【参考方案1】:

改用通知中心。

 NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];

UITextField:

[notificationCenter addObserver:self
                   selector:@selector (textFieldText:)
                       name:UITextFieldTextDidChangeNotification
                     object:yourtextfield];

【讨论】:

你好,先谢谢了,但是结果和之前的方法一样,也检测不到任何键。

以上是关于iOS:如何检测使用 BT 键盘时按下的任何键的主要内容,如果未能解决你的问题,请参考以下文章

如何检测是不是在 C++ 中按下了除特定键盘键之外的任何键盘键?

如何检测在 C 中使用诅咒按下的箭头键?

如何检测当前按下的键?

如何知道 iPhone 键盘中按下的键

iOS:如何检测硬件蓝牙键盘上的转义/控制键?

如何使用 VC++ 检测是不是已按下某个键