在Cocoa应用程序中无法检测ESC键?

时间:2011-11-25 03:00:24

标签: macos cocoa nsview keyevent

我在自定义NSView中使用onKeyDown来检测keydown事件,当我输入普通键时它很好用,例如" a,b,c"但是当我按下ESC时它不会调用onkeydown函数,当用户按ESC键时,我想退出我的应用程序。

怎么做?

2 个答案:

答案 0 :(得分:5)

好的,事实证明我的键盘坏了,只有ESC键,我用键盘改了,现在就可以了。无论如何,谢谢你。

答案 1 :(得分:2)

我刚刚将一个KeyDown处理程序放入我的一个测试应用程序中的自定义NSView中,并且ESC键完全击中了KeyDown。

我认为似乎与你调用KeyDown的方式有关?也许焦点设置不正确。

无论如何,您可以做的另一件事是在自定义NSView中实现cancelOperation:

以下是[NSResponder cancelOperation:]的文档。这也响应Escape键和Macintosh标准Command +。关键组合。

另请查看Cocoa Event-Handling Guide 处理重要事件 部分,这是我为您寻找答案的地方。希望这有帮助!