tryToPerform:with:调用keyDown:时不调用

时间:2011-12-28 00:42:23

标签: cocoa first-responder responder-chain

我有NSViewController我通过调用

手动输入响应者链
self.nextResponder = self.view.nextResponder;
self.view.nextResponder = self;

当用户按下视图内的键时,我能够成功接收keyDown:条消息。但是,出于某种原因,当用户访问MainMenu栏时,我没有收到tryToPerform:with:validateMenuItem:条消息。我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

事实证明,在调用respondsToSelector:之前,实际上正在发送validateMenuItem:消息。如果NSViewController实际上没有响应消息,则validateMenuItem永远不会被调用。也就是说,在整个过程中,我从来没有看到tryToPerform:with:被调用。不知道为什么,要查看Cocoa的事件编程指南并报告回来。