【发布时间】:2021-01-07 05:05:35
【问题描述】:
我正在尝试使用 HotKey 实现快捷键“Command + Option + J”,但由于某种原因,它无法在视图控制器之外工作。该应用程序是作为下拉菜单栏实现的,因此没有实际的窗口可以放在前面。我期待我的信息被打印出来。我有两个按钮,注册和取消注册,当我注册并打印出我看到它已注册的组合键时,我相信它正在工作。不幸的是,当我在另一个窗口打开或在桌面视图中按下组合键时,不会打印任何评论。非常感谢任何帮助。
//
// ViewController.swift
//
import Cocoa
import AppKit
import HotKey
import Carbon
class ViewController: NSViewController {
@IBOutlet var pressedLabel: NSTextField!
private var hotKey: HotKey? {
didSet {
guard let hotKey = hotKey else {
pressedLabel.stringValue = "Unregistered"
return
}
pressedLabel.stringValue = "Registered"
hotKey.keyDownHandler = { [weak self] in
NSApplication.shared.orderedWindows.forEach({ (window) in
print("woo")
})
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
register(self)
// Do any additional setup after loading the view.
}
@IBAction func unregister(_ sender: Any?) {
hotKey = nil
print("the hot key is ", hotKey?.keyCombo)
}
@IBAction func register(_ sender: Any) {
hotKey = HotKey(keyCombo: KeyCombo(key: .j, modifiers: [.command, .shift])
)
}
}
【问题讨论】:
-
在哪里可以找到
HotKey?