tryToPerform:with: 当 keyDown: 被调用时没有被调用
Posted
技术标签:
【中文标题】tryToPerform:with: 当 keyDown: 被调用时没有被调用【英文标题】:tryToPerform:with: not being called when keyDown: is being called 【发布时间】:2011-12-28 00:42:23 【问题描述】:我有一个NSViewController
,我通过调用手动将其放入响应者链中
self.nextResponder = self.view.nextResponder;
self.view.nextResponder = self;
当用户在视图内按键时,我能够成功接收keyDown:
消息。但是,由于某种原因,当用户访问 MainMenu 栏时,我没有收到 tryToPerform:with:
和 validateMenuItem:
消息。我在这里错过了什么?
【问题讨论】:
【参考方案1】:事实证明,实际上是在调用 validateMenuItem:
之前首先发送了 respondsToSelector:
消息。如果NSViewController
实际上没有响应消息,validateMenuItem
永远不会被调用。也就是说,在整个过程中,我从未见过tryToPerform:with:
被调用。不知道为什么,要查看 Cocoa 的事件编程指南并报告回来。
【讨论】:
以上是关于tryToPerform:with: 当 keyDown: 被调用时没有被调用的主要内容,如果未能解决你的问题,请参考以下文章