Repo // Deprecating AppleKeyboardConverter MK1.
This commit is contained in:
parent
165727f43d
commit
97bc20fe89
|
@ -78,10 +78,10 @@ extension NSEvent {
|
||||||
|
|
||||||
extension NSEvent {
|
extension NSEvent {
|
||||||
public var isTypingVertical: Bool { charactersIgnoringModifiers == "Vertical" }
|
public var isTypingVertical: Bool { charactersIgnoringModifiers == "Vertical" }
|
||||||
public var text: String { convertedFromPhonabets() }
|
public var text: String { characters ?? "" }
|
||||||
public var inputTextIgnoringModifiers: String? {
|
public var inputTextIgnoringModifiers: String? {
|
||||||
guard charactersIgnoringModifiers != nil else { return nil }
|
guard charactersIgnoringModifiers != nil else { return nil }
|
||||||
return convertedFromPhonabets(ignoringModifiers: true)
|
return charactersIgnoringModifiers ?? characters ?? ""
|
||||||
}
|
}
|
||||||
|
|
||||||
public var charCode: UInt16 {
|
public var charCode: UInt16 {
|
||||||
|
|
|
@ -97,143 +97,3 @@ extension IMKHelper {
|
||||||
TISInputSource.registerInputMethod() ? 0 : -1
|
TISInputSource.registerInputMethod() ? 0 : -1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Apple Keyboard Converter
|
|
||||||
|
|
||||||
extension NSEvent {
|
|
||||||
public func convertedFromPhonabets(ignoringModifiers: Bool = false) -> String {
|
|
||||||
if type == .flagsChanged { return "" }
|
|
||||||
var strProcessed = charactersIgnoringModifiers ?? characters ?? ""
|
|
||||||
if !ignoringModifiers {
|
|
||||||
strProcessed = characters ?? ""
|
|
||||||
}
|
|
||||||
if IMKHelper.isDynamicBasicKeyboardLayoutEnabled {
|
|
||||||
// 針對不同的 Apple 動態鍵盤佈局糾正大寫英文輸入。
|
|
||||||
switch IMKHelper.currentBasicKeyboardLayout {
|
|
||||||
case "com.apple.keylayout.ZhuyinBopomofo":
|
|
||||||
if strProcessed.count == 1, Character(strProcessed).isLowercase, Character(strProcessed).isASCII {
|
|
||||||
strProcessed = strProcessed.uppercased()
|
|
||||||
}
|
|
||||||
case "com.apple.keylayout.ZhuyinEten":
|
|
||||||
switch strProcessed {
|
|
||||||
case "a": strProcessed = "A"
|
|
||||||
case "b": strProcessed = "B"
|
|
||||||
case "c": strProcessed = "C"
|
|
||||||
case "d": strProcessed = "D"
|
|
||||||
case "e": strProcessed = "E"
|
|
||||||
case "f": strProcessed = "F"
|
|
||||||
case "g": strProcessed = "G"
|
|
||||||
case "h": strProcessed = "H"
|
|
||||||
case "i": strProcessed = "I"
|
|
||||||
case "j": strProcessed = "J"
|
|
||||||
case "k": strProcessed = "K"
|
|
||||||
case "l": strProcessed = "L"
|
|
||||||
case "m": strProcessed = "M"
|
|
||||||
case "n": strProcessed = "N"
|
|
||||||
case "o": strProcessed = "O"
|
|
||||||
case "p": strProcessed = "P"
|
|
||||||
case "q": strProcessed = "Q"
|
|
||||||
case "r": strProcessed = "R"
|
|
||||||
case "s": strProcessed = "S"
|
|
||||||
case "t": strProcessed = "T"
|
|
||||||
case "u": strProcessed = "U"
|
|
||||||
case "v": strProcessed = "V"
|
|
||||||
case "w": strProcessed = "W"
|
|
||||||
case "x": strProcessed = "X"
|
|
||||||
case "y": strProcessed = "Y"
|
|
||||||
case "z": strProcessed = "Z"
|
|
||||||
default: break
|
|
||||||
}
|
|
||||||
default: break
|
|
||||||
}
|
|
||||||
// 注音鍵群。
|
|
||||||
switch strProcessed {
|
|
||||||
case "ㄝ": strProcessed = ","
|
|
||||||
case "ㄦ": strProcessed = "-"
|
|
||||||
case "ㄡ": strProcessed = "."
|
|
||||||
case "ㄥ": strProcessed = "/"
|
|
||||||
case "ㄢ": strProcessed = "0"
|
|
||||||
case "ㄅ": strProcessed = "1"
|
|
||||||
case "ㄉ": strProcessed = "2"
|
|
||||||
case "ˇ": strProcessed = "3"
|
|
||||||
case "ˋ": strProcessed = "4"
|
|
||||||
case "ㄓ": strProcessed = "5"
|
|
||||||
case "ˊ": strProcessed = "6"
|
|
||||||
case "˙": strProcessed = "7"
|
|
||||||
case "ㄚ": strProcessed = "8"
|
|
||||||
case "ㄞ": strProcessed = "9"
|
|
||||||
case "ㄤ": strProcessed = ";"
|
|
||||||
case "ㄇ": strProcessed = "a"
|
|
||||||
case "ㄖ": strProcessed = "b"
|
|
||||||
case "ㄏ": strProcessed = "c"
|
|
||||||
case "ㄎ": strProcessed = "d"
|
|
||||||
case "ㄍ": strProcessed = "e"
|
|
||||||
case "ㄑ": strProcessed = "f"
|
|
||||||
case "ㄕ": strProcessed = "g"
|
|
||||||
case "ㄘ": strProcessed = "h"
|
|
||||||
case "ㄛ": strProcessed = "i"
|
|
||||||
case "ㄨ": strProcessed = "j"
|
|
||||||
case "ㄜ": strProcessed = "k"
|
|
||||||
case "ㄠ": strProcessed = "l"
|
|
||||||
case "ㄩ": strProcessed = "m"
|
|
||||||
case "ㄙ": strProcessed = "n"
|
|
||||||
case "ㄟ": strProcessed = "o"
|
|
||||||
case "ㄣ": strProcessed = "p"
|
|
||||||
case "ㄆ": strProcessed = "q"
|
|
||||||
case "ㄐ": strProcessed = "r"
|
|
||||||
case "ㄋ": strProcessed = "s"
|
|
||||||
case "ㄔ": strProcessed = "t"
|
|
||||||
case "ㄧ": strProcessed = "u"
|
|
||||||
case "ㄒ": strProcessed = "v"
|
|
||||||
case "ㄊ": strProcessed = "w"
|
|
||||||
case "ㄌ": strProcessed = "x"
|
|
||||||
case "ㄗ": strProcessed = "y"
|
|
||||||
case "ㄈ": strProcessed = "z"
|
|
||||||
default: break
|
|
||||||
}
|
|
||||||
// 除了數字鍵區以外的標點符號。
|
|
||||||
switch strProcessed {
|
|
||||||
case "、": strProcessed = "\\"
|
|
||||||
case "「": strProcessed = "["
|
|
||||||
case "」": strProcessed = "]"
|
|
||||||
case "『": strProcessed = "{"
|
|
||||||
case "』": strProcessed = "}"
|
|
||||||
case ",": strProcessed = "<"
|
|
||||||
case "。": strProcessed = ">"
|
|
||||||
default: break
|
|
||||||
}
|
|
||||||
// 摁了 SHIFT 之後的數字區的符號。
|
|
||||||
switch strProcessed {
|
|
||||||
case "!": strProcessed = "!"
|
|
||||||
case "@": strProcessed = "@"
|
|
||||||
case "#": strProcessed = "#"
|
|
||||||
case "$": strProcessed = "$"
|
|
||||||
case "%": strProcessed = "%"
|
|
||||||
case "︿": strProcessed = "^"
|
|
||||||
case "&": strProcessed = "&"
|
|
||||||
case "*": strProcessed = "*"
|
|
||||||
case "(": strProcessed = "("
|
|
||||||
case ")": strProcessed = ")"
|
|
||||||
default: break
|
|
||||||
}
|
|
||||||
// 摁了 Alt 的符號。
|
|
||||||
if strProcessed == "—" { strProcessed = "-" }
|
|
||||||
// Apple 倚天注音佈局追加符號糾正項目。
|
|
||||||
if IMKHelper.currentBasicKeyboardLayout == "com.apple.keylayout.ZhuyinEten" {
|
|
||||||
switch strProcessed {
|
|
||||||
case "_": strProcessed = "_"
|
|
||||||
case ":": strProcessed = ":"
|
|
||||||
case "?": strProcessed = "?"
|
|
||||||
case "+": strProcessed = "+"
|
|
||||||
case "|": strProcessed = "|"
|
|
||||||
default: break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// 糾正 macOS 內建的的動態注音鍵盤佈局的一個 bug。
|
|
||||||
if "-·".contains(strProcessed), keyCode == 50 {
|
|
||||||
strProcessed = "`"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return strProcessed
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue