Cocoa:NSView上的键击事件未触发

mtm*_*ock 18 cocoa keydown document-based

我已经制作了一个自定义的NSView并实现了该keyDown:方法.但是,当我按下键时,从不调用该方法.我必须注册接收这些活动吗?fyi,我正在创建一个基于文档的应用程序,并且可以在任何地方处理此代码(不必在此视图中).在基于文档的应用程序中执行此操作的最佳位置是什么,以便事件将在整个应用程序中发生?

Ken*_*ses 30

你需要覆盖-acceptsFirstResponder才能返回YES.


Mat*_*rby 8

在Swift中:

class MDView: NSView {
    override var acceptsFirstResponder: Bool { return true }
}
Run Code Online (Sandbox Code Playgroud)