【问题标题】:Cocoa: Key down event on NSView not firingCocoa:NSView 上的按键事件未触发
【发布时间】:2012-04-05 01:06:30
【问题描述】:

我制作了一个自定义的 NSView 并实现了keyDown: 方法。但是,当我按键时,该方法永远不会被调用。我必须注册才能接收这些事件吗?仅供参考,我正在制作一个基于文档的应用程序,并且可以在任何地方处理此代码(不必在此视图中)。在基于文档的应用程序中执行此操作以使事件在整个应用程序中发生的最佳位置是什么?

【问题讨论】:

    标签: cocoa keydown document-based


    【解决方案1】:

    在斯威夫特中:

    class MDView: NSView {
        override var acceptsFirstResponder: Bool { return true }
    }
    

    【讨论】:

      【解决方案2】:

      您需要覆盖 -acceptsFirstResponder 以返回 YES

      【讨论】:

      • 我和提问者有同样的问题(基于文档的应用程序中的自定义 NSView),只是覆盖了acceptsFirstResponder,但仍然没有触发keyDown。如果您对它可能是什么有任何其他建议,我将永远感激不尽!
      • 你有理由相信你的视图是窗口的第一响应者吗?您可以在屏幕上订购窗口之前在代码中设置initialFirstResponder,或在IB中连接它。其他时候,您可以使用-makeFirstResponder:。另外,请确保您的窗口可以成为关键。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-24
      • 2023-03-15
      • 1970-01-01
      • 2013-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多