【问题标题】:tryToPerform:with: not being called when keyDown: is being calledtryToPerform:with: 当 keyDown: 被调用时没有被调用
【发布时间】:2011-12-28 00:42:23
【问题描述】:

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

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

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

【问题讨论】:

    标签: cocoa first-responder responder-chain


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2017-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多