Versions of UIKey
, UIKeyboardHIDUsage
, and UIKeyModifierFlags
that work with AppKit's NSEvent
. No need for Carbon.HIToolbox. Aside from being a nicer API to work with, these versions should make it possible to more easily write source-compatible AppKit/UIKit keyboard handling code. Yes, this is basically a gigantic switch statement.
These structures are particularly helpful for writing tests. Constructing NSEvent
instances by hand is a pain.
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")
]
I would love to hear from you! Issues or pull requests work great. A Matrix space is also available for live help, but I have a strong bias towards answering in the form of documenation.
I prefer collaboration, and would love to find ways to work together if you have a similar project.
I prefer indentation with tabs for improved accessibility. But, I'd rather you use the system you want and make a PR than hesitate because of whitespace.
By participating in this project you agree to abide by the Contributor Code of Conduct.