【发布时间】:2012-06-26 05:21:52
【问题描述】:
我有一个 iOS 应用程序,我想做的就是在用户连接蓝牙键盘时为基本命令组合键提供更多支持,例如 command+a、command+s、command+x、command+v 和好友.
我知道这是可能的。 Textastic 等应用程序和许多其他编辑应用程序都支持这些功能。
我查看了 UIResponder(似乎只被弹出菜单使用)、UIKeyInput、UITextInput[Delegate] 和其他 API 文档,但没有提及如何执行此操作。
使用 (BOOL)canPerformAction:(SEL)action withSender:(id)sender 很容易支持在 UIMenuController 中显示哪些选项。但是,连接蓝牙键盘时似乎不会调用此方法。所以我要么需要专门为键盘或其他东西实现另一种方法。
我现在怀疑可能是文本子系统负责执行这些操作。但是,我找不到任何文档!此外,执行操作时不会调用任何 UITextInput 委托方法。我几乎认为该解决方案是私有的,我需要专门询问 Apple 如何访问这些功能(我刚刚完成了)。
更新:
positionFromPosition:inDirection:offset: 是用于检测何时按下箭头键的方法。在 iOS 调用此方法后,它会调用 setSelectedText:。您需要解决其余的管道问题。
更新 2:
我能够回答我的所有问题。答案请参考标注的解决方案。
【问题讨论】:
标签: objective-c ios keyboard