KeyHandlerInput // Use KeyCode in lieu of CharCode as much as possible.

- KeyCode recognition won't be affected by macOS Base Keyboard Layouts (but CharCode will, always).
This commit is contained in:
ShikiSuen 2022-02-24 16:21:27 +08:00
parent 6e4006295f
commit e83a7d9037
1 changed files with 10 additions and 9 deletions

View File

@ -19,12 +19,16 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR TH
import Cocoa import Cocoa
// Use KeyCodes as much as possible since its recognition won't be affected by macOS Base Keyboard Layouts.
// KeyCodes: https://eastmanreference.com/complete-list-of-applescript-key-codes // KeyCodes: https://eastmanreference.com/complete-list-of-applescript-key-codes
enum KeyCode: UInt16 { enum KeyCode: UInt16 {
case none = 0 case none = 0
case space = 49
case backSpace = 51
case esc = 53 case esc = 53
case tab = 48 case tab = 48
case enter = 76 case enterLF = 76
case enterCR = 36
case up = 126 case up = 126
case down = 125 case down = 125
case left = 123 case left = 123
@ -38,10 +42,6 @@ enum KeyCode: UInt16 {
// CharCodes: https://theasciicode.com.ar/ascii-control-characters/horizontal-tab-ascii-code-9.html // CharCodes: https://theasciicode.com.ar/ascii-control-characters/horizontal-tab-ascii-code-9.html
enum CharCode: UInt16 { enum CharCode: UInt16 {
case space = 32
case backSpace = 8
case enter = 13
case esc = 27
case symbolMenuKey_ABC = 96 case symbolMenuKey_ABC = 96
} }
@ -150,7 +150,7 @@ class KeyHandlerInput: NSObject {
} }
@objc var isEnter: Bool { @objc var isEnter: Bool {
(CharCode(rawValue: charCode) == CharCode.enter) || (KeyCode(rawValue: keyCode) == KeyCode.enter) (KeyCode(rawValue: keyCode) == KeyCode.enterCR) || (KeyCode(rawValue: keyCode) == KeyCode.enterLF)
} }
@objc var isUp: Bool { @objc var isUp: Bool {
@ -178,15 +178,15 @@ class KeyHandlerInput: NSObject {
} }
@objc var isSpace: Bool { @objc var isSpace: Bool {
CharCode(rawValue: charCode) == CharCode.space KeyCode(rawValue: keyCode) == KeyCode.space
} }
@objc var isBackSpace: Bool { @objc var isBackSpace: Bool {
CharCode(rawValue: charCode) == CharCode.backSpace KeyCode(rawValue: keyCode) == KeyCode.backSpace
} }
@objc var isESC: Bool { @objc var isESC: Bool {
(CharCode(rawValue: charCode) == CharCode.esc) || (KeyCode(rawValue: keyCode) == KeyCode.esc) KeyCode(rawValue: keyCode) == KeyCode.esc
} }
@objc var isHome: Bool { @objc var isHome: Bool {
@ -226,6 +226,7 @@ class KeyHandlerInput: NSObject {
} }
@objc var isSymbolMenuKey: Bool { @objc var isSymbolMenuKey: Bool {
// CharCode
CharCode(rawValue: charCode) == CharCode.symbolMenuKey_ABC CharCode(rawValue: charCode) == CharCode.symbolMenuKey_ABC
} }