我正在尝试将键盘快捷键添加到我的应用程序中,并且我遇到了未调用UIKeyCommand操作的问题。
我有一个UIViewController,它覆盖了KeyCommands。
来自Apple的 文档 :
您从此方法返回的关键命令将应用于整个响应程序链。当按下与键命令对象匹配的组合键时,UIKit遍历响应者链,寻找实现相应操作方法的对象。它在找到的第一个对象上调用该方法,然后停止处理该事件。
您的 keyCommandManger 的例子 NSObject 是 不 在响应者链中 - 视图控制器是。
keyCommandManger
NSObject
如果你把这个方法:
- (void)keyShortcutActions:(UIKeyCommand)sender { NSLog(@"#### This method IS being called (in view controller) by the space key shortcut"); }
你应该看到它被触发了。
如果您希望包含“动作”代码 keyCommandManger ,您可以将事件转发给您的经理对象。或者,您可以尝试将经理类更改为继承 UIResponder - 但可靠地将它带入链条是困难的部分。
UIResponder