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

Cocoa 调用keyDown:时不调用tryToPerform:with:,cocoa,first-responder,responder-chain,Cocoa,First Responder,Responder Chain,我有一个NSViewController,我通过调用 self.nextResponder = self.view.nextResponder; self.view.nextResponder = self; 当用户在视图内按键时,我能够成功接收keyDown:消息。但是,由于某些原因,当用户访问主菜单栏时,我没有收到tryToPerform:with:和validateNuItem:消息。我在这里遗漏了什么?事实上,在调用validateNuitem:之前,首先发送了一条响应选择器:消息。如

我有一个
NSViewController
,我通过调用

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

当用户在视图内按键时,我能够成功接收
keyDown:
消息。但是,由于某些原因,当用户访问主菜单栏时,我没有收到
tryToPerform:with:
validateNuItem:
消息。我在这里遗漏了什么?

事实上,在调用
validateNuitem:
之前,首先发送了一条
响应选择器:
消息。如果
NSViewController
实际上没有响应消息,则不会调用
validateNuitem
。也就是说,在整个过程中,我从未见过
尝试执行:
被调用。不知道为什么,我将查看Cocoa的事件编程指南并向您报告