如何让你的iOS7应用支持键盘快捷键

最近买了个罗技的光能无线键盘(K760)用来连接我的iOS设备,但是发现iOS所支持的快捷键太少了(特别是iPhone),而iPad也仅有那几款应用支持那可怜的几个快捷键。这使得我感觉iOS设备用键盘如同鸡肋。。。因为打字什么的还是要手点。

记得之前了解到iOS 7的UIResponder新增了keyCommands方法,于是今天就研究了一下API文档并且测试了一下,感觉真是太棒了~

下面介绍一下如何让应用支持外接键盘的快捷键,其实很简单!

首先要确保在需要实现键盘快捷键的ViewController中加入如下代码:

1
2
3
- (BOOL)canBecomeFirstResponder {
return YES;
}

然后就是重写UIViewController- (NSArray *)keyCommands方法:

1
2
3
- (NSArray *)keyCommands {
return @[[UIKeyCommand keyCommandWithInput:UIKeyInputEscape modifierFlags:kNilOptions action:@selector(escapeKeyPressed:)]];
}

最后一步就是实现UIKeyCommandaction

1
2
3
4
- (void)escapeKeyPressed:(UIKeyCommand *)keyCommand {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"UIKeyCommand Demo" message:[NSString stringWithFormat:@"%@ pressed", keyCommand.input] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alertView show];
}

现在试一下运行app,然后按一下esc键(模拟器下可以使用电脑的键盘),看一下效果~,怎么样?很棒吧!!!

参考文档: