与 AppKit 的 NSEvent
配合使用的 UIKey
、UIKeyboardHIDUsage
和 UIKeyModifierFlags
版本。无需 Carbon.HIToolbox。除了提供更友好的 API 之外,这些版本应该可以更轻松地编写源码兼容的 AppKit/UIKit 键盘处理代码。是的,这基本上是一个巨大的 switch 语句。
这些结构对于编写测试特别有用。手动构造 NSEvent
实例非常麻烦。
import Carbon.HIToolbox
func withoutKeyCodes(_ event: NSEvent) {
let code = Int(event.keyCode)
if code == kVK_Return {
doThing()
}
if event.modifierFlags.deviceIndependentOnly.contains(.control) {
controlKeyActive()
}
}
import KeyCodes
func withKeyCodes(_ event: NSEvent) {
if event.keyboardHIDUsage == .keyboardReturn {
doThing()
}
// UIKeyModifierFlags-compatible
if event.keyModifierFlags.contains(.control) {
controlKeyActive()
}
}
dependencies: [
.package(url: "https://github.com/ChimeHQ/KeyCodes", from: "0.1.1")
]
我很乐意收到您的来信!提交 Issue 或 Pull Request 非常棒。Matrix space 也可用于实时帮助,但我强烈倾向于以文档的形式进行回复。
我更喜欢协作,如果您有类似的项目,我很乐意找到合作的方式。
我更喜欢用制表符进行缩进,以提高可访问性。但是,我宁愿您使用您想要的系统并创建一个 PR,也不希望您因为空格而犹豫。
通过参与此项目,您同意遵守贡献者行为准则。