首页 > 解决方案 > 如何响应 keyUp 事件?

问题描述

我正在使用 SwiftUI 为 MacOS 编写一个简单的菜单栏应用程序。我希望应用程序响应转义键。使用我到目前为止拼凑的东西,我有这样的东西:

extension NSWindow {
    open override func keyDown(with event: NSEvent) {
        print("keyDown: \(event.keyCode)")
    }
    open override func keyUp(with event: NSEvent) {
        print("keyUp: \(event.keyCode)")
    }
}


class AppDelegate: NSObject, NSApplicationDelegate {
    func applicationDidFinishLaunching(_ aNotification: Notification) {

    //  etc

    }
}

AppDelegate 创建并启动一个NSPopover.

当我运行应用程序时,我确实收到了keyUp消息,但keyDown由于某种原因不是。

问题是我如何从内部响应密钥AppDelegate?最终,我想使用转义键关闭弹出框,但我也想探索其他可能性。

标签: swiftmacosswiftuinswindow

解决方案


推荐阅读