当keyDown:被调用时,tryToPerform:with:没有被调用



我有一个NSViewController,我通过调用

手动放入响应器链
self.nextResponder = self.view.nextResponder;
self.view.nextResponder = self;

当用户按下视图内的键时,我能够成功地接收keyDown:消息。然而,由于某种原因,当用户访问主菜单栏时,我没有收到tryToPerform:with:validateMenuItem:消息。我遗漏了什么?

结果表明,实际上是在调用validateMenuItem:之前先发送respondsToSelector:消息。如果NSViewController实际上没有响应消息,那么validateMenuItem就永远不会被调用。也就是说,在整个过程中,我从未见过tryToPerform:with:被召唤。不知道为什么,去看看Cocoa的事件编程指南并反馈。

相关内容

最新更新