如何使用媒体键读取 USB 键盘的键码

Posted

技术标签:

【中文标题】如何使用媒体键读取 USB 键盘的键码【英文标题】:How to read key codes of USB Keyboard with Media Keys 【发布时间】:2011-01-26 08:13:52 【问题描述】:

是否可以使用特殊的 ios API 或通过通用 TextInput 字段读取非标准键的键码?我有一个带有特殊按钮的多媒体键盘,我想让我的 iPad 应用程序知道这些键码。

我知道 iOS 已经可以使用其中的一些(即音量增大/减小、下一首/上一首曲目)。

【问题讨论】:

这听起来像是一场噩梦。祝你好运。我知道某处有一个 API 可以让您成为键盘的代表并逐个字符地获取按键。我不知道它给了你多少数据,也不知道它叫什么。 你有那个键盘按键委托的例子吗? 【参考方案1】:

您可能想尝试继承 UIApplication 并覆盖 sendEvent: 以查看通过那里传递的事件。鉴于 UIEvent 没有记录 iOS 上的键盘事件支持(与 AppKit 中的 NSEvent 不同),我怀疑你会看到键盘事件......但值得一试。我没有 BT 键盘可以自己尝试一下。

要使用 UIApplication 子类,请编辑 main.m 并将您的子类作为第三个参数传递给 UIApplicationMain:

int main(int argc, char *argv[]) 
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, YourApplicationSubclass, nil);
    [pool release];
    return retVal;

这种策略在桌面 Cocoa 应用中并不少见,这里也有解释:

http://cocoawithlove.com/2009/05/intercepting-status-bar-touches-on.html

【讨论】:

以上是关于如何使用媒体键读取 USB 键盘的键码的主要内容,如果未能解决你的问题,请参考以下文章

Java 键盘键码列表

keycode键盘 按键 - 键码 对应表

键盘按钮keyCode大全

keycode键盘 按键 - 键码 对应表

键盘按键keyCode大全,js页面快捷键

有没有办法在不硬编码的情况下获取键盘键列表及其各自的键码?