Sauce
映射macOS中各种键盘布局源和键码。例如:QWERTY,Dvorak
动机
由于Carbon.framework中定义的键码仅适用于ANSI标准的US键盘,因此我们只能获得QWERTY键盘布局的键码(例如:kVK_ANSI_V
)
在QWERTY以外的布局中(例如Dvorak),虚拟键码不同。
键盘布局 | 键 | 键码 |
---|---|---|
QWERTY | v | 9 |
Dvorak | v | 47 |
这个库旨在映射输入源的键码,以便在多种键盘布局中获取正确的键码。
用法
CocoaPods
pod 'Sauce'
Carthage
github "Clipy/Sauce"
示例
按键代码
获取当前输入源的按键代码。
let keyCode = Sauce.shared.keyCode(for: .v)
按键
获取当前输入源的 Key
。
let key = Sauce.shared.key(for: keyCode)
字符
获取当前输入源的字符。
let character = Sauce.shared.character(for: keyCode, carbonModifiers: shiftKey)
let character = Sauce.shared.character(for: keyCode, cocoaModifiers: [.shift])
通知
NSNotification.Name.SauceEnabledKeyboardInputSourcesChanged
SauceEnabledKeyboardInputSourcesChanged
与 Carbon.framework 中的 kTISNotifyEnabledKeyboardInputSourcesChanged
相同。
NSNotification.Name.SauceSelectedKeyboardInputSourceChanged
SauceSelectedKeyboardInputSourceChanged
与 kTISNotifySelectedKeyboardInputSourceChanged
不同,只有在输入源标识符改变时才会通知。
由于它是经过筛选并通知的,请不要将其用于与正常的 kTISNotifySelectedKeyboardInputSourceChanged
相同的目的。
NSNotification.Name.SauceSelectedKeyboardKeyCodesChanged
使用此通知可以检测当键盘布局设置更改时,当输入源从QWERTY更改为Dvorak等情况。