0

我有一个NSViewController我通过调用手动放入响应者链

self.nextResponder = self.view.nextResponder;
self.view.nextResponder = self;

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

4

1 回答 1

0

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

于 2011-12-28T06:36:17.543 回答