如何使用媒体键读取 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 键盘的键码的主要内容,如果未能解决你的问题,请参考以下文章