Ios 如何在UIViewController中处理键盘快捷键
我正在尝试向Ios 如何在UIViewController中处理键盘快捷键,ios,objective-c,keyboard,Ios,Objective C,Keyboard,我正在尝试向uiextfield或UITextView上没有UITextField的UITextField>控制器添加一个可与外部蓝牙键盘一起使用的键盘快捷键。到目前为止,我尝试了以下方法,但没有成功 - (BOOL)canBecomeFirstResponder { return YES; } - (NSArray *)keyCommands { return @[ [UIKeyCommand keyCommandWithInput:@"e" mod
uiextfield
或UITextView
上没有UITextField的UITextField>控制器添加一个可与外部蓝牙键盘一起使用的键盘快捷键。到目前为止,我尝试了以下方法,但没有成功
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (NSArray *)keyCommands {
return @[
[UIKeyCommand keyCommandWithInput:@"e" modifierFlags:UIKeyModifierCommand action:@selector(handleShortcut:)]];
}
- (void)handleShortcut:(id)sender
{
NSLog(@"%s",__FUNCTION__);
}
我也无意中想出了一个变通办法,但对我来说并不奏效。你知道如何处理UIViewController中没有文本字段的快捷方式吗?创建UIView的子类。向其中添加方法:
- (BOOL)canBecomeFirstResponder {
return YES;
}
- (NSArray<UIKeyCommand *>*)keyCommands {
return @[
//example shortcut CTRL+Cmnd+1
[UIKeyCommand keyCommandWithInput:@"1" modifierFlags:UIKeyModifierCommand | UIKeyModifierControl action:@selector(pressed:)]
];
}
-(BOOL)可以成为第一响应者{
返回YES;
}
-(NSArray*)键命令{
返回@[
//快捷键CTRL+Cmnd+1示例
[UIKeyCommand KEYCOMMAND WITH INPUT:@“1”修改器标签:UIKEYMODIFERCOMMAND | UIKEYMODIFERCONTROL操作:@选择器(按下:)]
];
}
添加所需的选择器(在我的情况下为“按下”)
设置ViewController视图类-您的子类
结果—“2015-11-30 17:34:28.815项目名称[5204:2899520]1”这是一个有点老的问题,但由于谷歌在搜索UIViewController的键盘快捷键时有很高的链接,下面是当前(2017年11月)的答案:
UIViewController
现在有一个简单的方法叫-addKeyCommand:
,所以只要用这个方法把你的命令添加到你的视图控制器上,你就可以开始了。你的iOS设备使用外部键盘吗?是的,完全正确。这是用于使用外部蓝牙键盘的。谢谢。我试过了。在UIViewController上“激活”按键命令不起作用。becomeFirstResponder
仅对UITextView/字段有效。