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: 被调用时没有被调用的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript键盘鼠标事件处理

div模拟文本输入框做字数限制 用substr限制 当字数达到后光标会回到开头 用range对象限制但是删除

e.Handled 在 VB.net 2010 中不起作用

使用回车键控制鼠标焦点

nginx 80 端口 跳转443端口

input event兼容性