我有一个NSViewController
,我通过调用
self.nextResponder = self.view.nextResponder;
self.view.nextResponder = self;
当用户按下视图内的键时,我能够成功地接收keyDown:
消息。然而,由于某种原因,当用户访问主菜单栏时,我没有收到tryToPerform:with:
和validateMenuItem:
消息。我遗漏了什么?
结果表明,实际上是在调用validateMenuItem:
之前先发送respondsToSelector:
消息。如果NSViewController
实际上没有响应消息,那么validateMenuItem
就永远不会被调用。也就是说,在整个过程中,我从未见过tryToPerform:with:
被召唤。不知道为什么,去看看Cocoa的事件编程指南并反馈。