2015-11-04 82 views
2

我正在试图添加一个键盘快捷键,用于使用外部蓝牙键盘到UIViewController,其上没有UITextFieldUITextView。到目前为止,我尝试没有成功如何在UIViewController中处理键盘快捷方式

- (BOOL)canBecomeFirstResponder { 
    return YES; 
} 

- (NSArray *)keyCommands { 
    return @[ 
      [UIKeyCommand keyCommandWithInput:@"e" modifierFlags:UIKeyModifierCommand action:@selector(handleShortcut:)]]; 
} 

- (void)handleShortcut:(id)sender 
{ 
    NSLog(@"%s",__FUNCTION__); 
} 

我还绊了this post与解决方法如下,但它并没有为我工作。任何想法如何处理UIViewController中的快捷键而不是文本框?

+0

您是否在iOS设备上使用外接键盘? – rmaddy

+0

是的,确切地说。这是用于使用外接蓝牙键盘 – Bernd

回答

0

创建UIView的子类。添加方法是:

- (BOOL)canBecomeFirstResponder { 
    return YES; 
} 

- (NSArray<UIKeyCommand *>*)keyCommands { 
    return @[ 
//example shortcut CTRL+Cmnd+1 
      [UIKeyCommand keyCommandWithInput:@"1" modifierFlags:UIKeyModifierCommand | UIKeyModifierControl action:@selector(pressed:)] 
]; 
     } 

添加需要选择在(“按:”在我的情况)

设置你的ViewController视图类 - 子类。

结果 - “二〇一五年十一月三十〇日17:34:28.815项目名[5204:2899520] 1”

+0

谢谢。我试过了。它不能在UIViewController上“激活”keyCommand。 'becomeFirstResponder'只对UITextView/Field有效。 – Bernd

+0

检查更新的答案 – Viktor

0

稍微老问题,但自从谷歌搜索的键盘快捷键为UIViewController时有此链接高,这里的目前(2017年11月)回答:

UIViewController现在有一个简单的方法,称为-addKeyCommand:所以只需将您的命令添加到您的视图控制器使用此方法,你很好去。