我正在尝试将用于外部蓝牙键盘的键盘快捷键添加到UIViewController
,但没有UITextField
或UITextView
。到目前为止,我尝试了以下但没有成功
- (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 :(得分:0)
创建UIView的子类。添加方法:
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (NSArray<UIKeyCommand *>*)keyCommands {
return @[
//example shortcut CTRL+Cmnd+1
[UIKeyCommand keyCommandWithInput:@"1" modifierFlags:UIKeyModifierCommand | UIKeyModifierControl action:@selector(pressed:)]
];
}
添加所需的选择器(在我的情况下为“press:”)
设置ViewController视图类 - 您的子类。
结果 - “2015-11-30 17:34:28.815 ProjectName [5204:2899520] 1”
答案 1 :(得分:0)
一个稍微陈旧的问题,但由于Google在搜索UIViewController
的键盘快捷键时此链接较高,这是当前(2017年11月)的答案:
UIViewController
现在有一个名为-addKeyCommand:
的简单方法,所以只需使用此方法将您的命令添加到视图控制器,就可以了。