2015-11-04 52 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:所以只需將您的命令添加到您的視圖控制器使用此方法,你很好去。