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

标签 ios ipad ios6 keyboard

我正在尝试弄清楚如何检测是否已在连接到 iOS 设备的蓝牙键盘上按下 Escape(以及其他组合键,如 Ctrl 和 alt)。

一些答案​​似乎表明这是不可能的。但是,Appstore 中有执行此操作的应用程序(例如 iSSH),因此我认为可以以某种方式使用公共(public) API。

我已经尝试创建自己的 UITextInput,但是当按下 Escape 键时,它什么也接收不到。 API 的唯一部分我可以看到 iPad 可能响应的地方是启用 VoiceOver 时(Escape 在 Safari 中工作),所以我想知道是否有通过可访问性 API 进入的方法?

我也试着看看是否有我可以从 NSNotificationCenter 观察到的东西可能有帮助,但还没有找到任何东西。

欢迎提出建议,我已经研究了一天,现在有点不知所措。

最佳答案

您现在可以在 iOS 7 中执行此操作。例如,要实现转义键,请重写 UITextView 并将以下方法放在您的类中:

- (NSArray *) keyCommands {
    UIKeyCommand *esc = [UIKeyCommand keyCommandWithInput: UIKeyInputEscape modifierFlags: 0 action: @selector(esc:)];
    return [[NSArray alloc] initWithObjects: esc, nil];
}

- (void) esc: (UIKeyCommand *) keyCommand {
    // Your custom code goes here.
}

您无需检查以确保您使用的是 iOS 7,因为早期版本的操作系统不会调用 keyCommands 方法。

关于iOS:如何检测硬件蓝牙键盘上的转义/控制键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14791056/

相关文章:

ios - -[UIApplication _runWithMainScene :transitionContext:completion:], 中的断言失败

jquery - 允许 ics 在 iOS 的 phonegap 应用程序中打开

iphone - iOS5.0.1上的内存泄漏drawInRect

ios - Split View Controller 导航栏的奇怪行为

google-chrome - 如何在 chrome/safari mobile IOS 6 上查看 javascript 错误

iphone - REST 套件 0.10.0 - POST 不工作

iphone - IOS SDK - NSLock 消息 : "unlocked from thread which did not lock it"

c# - 如何对 Unicode 进行编码以便 iPad 和 Excel 都能理解?

ios - 我是否需要实现导航 Controller 才能添加其他 Controller 的 View ?

ios - 只有在某些情况下才会出现 segue 崩溃吗?