我正在尝试开发 macOS 应用程序,并且需要监听按键事件。
我可以使用以下类来做到这一点:
import Cocoa
class EditorWindow: NSWindow {
override func keyDown(with event: NSEvent) {
super.keyDown(with: event)
Swift.print("Caught a key down: \(event.keyCode)!")
}
}
Run Code Online (Sandbox Code Playgroud)
我能够获取每个字母的关键代码,例如A = 0和S = 1。
但是,在这种情况下,键代码似乎不太适合 Unicode 标量,因此我无法将这些键值转换为Character.
有什么办法可以将输出UInt16的结果转换NSEvent.keyCode为aCharacter或a吗String?
我正在开发一个需要从外部提供程序获取授权令牌的应用程序。所以,我需要一个用于重定向回调的自定义 URL 方案。
重定向回调是:chirper://success。
我还在我的中添加了以下方法AppDelegate.swift:
func handleGetURLEvent(event: NSAppleEventDescriptor?, replyEvent: NSAppleEventDescriptor?) {
if let aeEventDescriptor = event?.paramDescriptor(forKeyword: AEKeyword(keyDirectObject)) {
if let urlStr = aeEventDescriptor.stringValue {
let url = URL(string: urlStr)
print(url)
// do something with the URL
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是当我用 Safari 打开重定向回调 URL 时,这就是我得到的:

Safari 无法打开此 URL,因为 macOS 无法识别以
chirper: