弄清楚了。我已经实现了 UIMenuController 方法来支持剪切、复制和粘贴。通过实现这些功能并将蓝牙键盘连接到物理设备,您将自动获得基本命令选项(a、c、x、v 和朋友)。你需要完全实现 UIMenuController UIResponderStandardEditActions。我想注意的是,在 iOS 模拟器中它不会触发命令(a、c、x、v 和朋友)动作。只有当蓝牙键盘连接到物理设备时,我才能观察到这些功能的工作——即使在模拟器中启用了“模拟硬件键盘”。
关于控制/选项键;当您完全实现 UITextInput 时,您还将获得使用箭头键、箭头键 + 控件、箭头键 + 选项等时的所有移动功能。查看 Apple 提供的 SimpleTextInput 示例代码文件,以更好地了解如何实现这一点.
话虽如此,您无法创建自己的键盘组合。如果我想要这些功能,Apple 要求我为其创建一张票,但我不...我真的不在乎支持他们提供的任何东西。因此,目前无法使用 Command+s(保存)等命令。
给你一个有趣的小故事;Apple 说我想要做的事情在 API 中是不可能的(使用 command+c、command+v 等)。我想这表明您对他们的技术专长有多大帮助。非常令人失望。
更新:
自 iOS 7 以来,Apple 已经使捕获任何键命令、esc 等变得微不足道。下面是一个如何捕获各种不同键的示例:
return @[[UIKeyCommand keyCommandWithInput:UIKeyInputEscape modifierFlags:0 action:@selector(escapeKeyPressed:)],
[UIKeyCommand keyCommandWithInput:@"f" modifierFlags:UIKeyModifierCommand action:@selector(commandFindPressed:)],
[UIKeyCommand keyCommandWithInput:@"s" modifierFlags:UIKeyModifierCommand action:@selector(commandSavePressed:)],
[UIKeyCommand keyCommandWithInput:@"b" modifierFlags:UIKeyModifierControl action:@selector(controlBKeyPressed:)],
[UIKeyCommand keyCommandWithInput:@"f" modifierFlags:UIKeyModifierControl action:@selector(controlFKeyPressed:)],
[UIKeyCommand keyCommandWithInput:@"r" modifierFlags:UIKeyModifierControl action:@selector(controlRKeyPressed:)]
];
...
- (void)commandSavePressed:(UIKeyCommand *)keyCommand
{
[self saveFile];
}