mgrPrefs // +alphanumericalKeyboardLayout.
This commit is contained in:
parent
9d04808c5a
commit
5a16d6d638
|
@ -19,6 +19,7 @@ public enum UserDef: String, CaseIterable {
|
||||||
case kCheckUpdateAutomatically = "CheckUpdateAutomatically"
|
case kCheckUpdateAutomatically = "CheckUpdateAutomatically"
|
||||||
case kMandarinParser = "MandarinParser"
|
case kMandarinParser = "MandarinParser"
|
||||||
case kBasicKeyboardLayout = "BasicKeyboardLayout"
|
case kBasicKeyboardLayout = "BasicKeyboardLayout"
|
||||||
|
case kAlphanumericalKeyboardLayout = "AlphanumericalKeyboardLayout"
|
||||||
case kShowPageButtonsInCandidateWindow = "ShowPageButtonsInCandidateWindow"
|
case kShowPageButtonsInCandidateWindow = "ShowPageButtonsInCandidateWindow"
|
||||||
case kCandidateListTextSize = "CandidateListTextSize"
|
case kCandidateListTextSize = "CandidateListTextSize"
|
||||||
case kAppleLanguages = "AppleLanguages"
|
case kAppleLanguages = "AppleLanguages"
|
||||||
|
@ -86,6 +87,7 @@ private let kMaxCandidateListTextSize: CGFloat = 196
|
||||||
private let kDefaultKeys = "123456789"
|
private let kDefaultKeys = "123456789"
|
||||||
|
|
||||||
private let kDefaultBasicKeyboardLayout = "com.apple.keylayout.ZhuyinBopomofo"
|
private let kDefaultBasicKeyboardLayout = "com.apple.keylayout.ZhuyinBopomofo"
|
||||||
|
private let kDefaultAlphanumericalKeyboardLayout = "com.apple.keylayout.ABC"
|
||||||
|
|
||||||
// MARK: - UserDefaults extension.
|
// MARK: - UserDefaults extension.
|
||||||
|
|
||||||
|
@ -385,6 +387,11 @@ public enum mgrPrefs {
|
||||||
)
|
)
|
||||||
static var basicKeyboardLayout: String
|
static var basicKeyboardLayout: String
|
||||||
|
|
||||||
|
@UserDefault(
|
||||||
|
key: UserDef.kAlphanumericalKeyboardLayout.rawValue, defaultValue: kDefaultAlphanumericalKeyboardLayout
|
||||||
|
)
|
||||||
|
static var alphanumericalKeyboardLayout: String
|
||||||
|
|
||||||
@UserDefault(key: UserDef.kShowPageButtonsInCandidateWindow.rawValue, defaultValue: true)
|
@UserDefault(key: UserDef.kShowPageButtonsInCandidateWindow.rawValue, defaultValue: true)
|
||||||
static var showPageButtonsInCandidateWindow: Bool
|
static var showPageButtonsInCandidateWindow: Bool
|
||||||
|
|
||||||
|
@ -756,23 +763,12 @@ extension mgrPrefs {
|
||||||
mandarinParser = 0
|
mandarinParser = 0
|
||||||
}
|
}
|
||||||
// 基礎鍵盤排列選項糾錯。
|
// 基礎鍵盤排列選項糾錯。
|
||||||
var inputSourceTIS: TISInputSource? {
|
if TISInputSource.generate(from: mgrPrefs.basicKeyboardLayout) == nil {
|
||||||
var result: TISInputSource?
|
|
||||||
let list = TISCreateInputSourceList(nil, true).takeRetainedValue() as! [TISInputSource]
|
|
||||||
let matchedTISString = mgrPrefs.basicKeyboardLayout
|
|
||||||
for source in list {
|
|
||||||
guard let ptrCat = TISGetInputSourceProperty(source, kTISPropertyInputSourceCategory) else { continue }
|
|
||||||
let category = Unmanaged<CFString>.fromOpaque(ptrCat).takeUnretainedValue()
|
|
||||||
guard category == kTISCategoryKeyboardInputSource else { continue }
|
|
||||||
guard let ptrSourceID = TISGetInputSourceProperty(source, kTISPropertyInputSourceID) else { continue }
|
|
||||||
let sourceID = String(Unmanaged<CFString>.fromOpaque(ptrSourceID).takeUnretainedValue())
|
|
||||||
if sourceID == matchedTISString { result = source }
|
|
||||||
}
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
if inputSourceTIS == nil {
|
|
||||||
mgrPrefs.basicKeyboardLayout = kDefaultBasicKeyboardLayout
|
mgrPrefs.basicKeyboardLayout = kDefaultBasicKeyboardLayout
|
||||||
}
|
}
|
||||||
|
if TISInputSource.generate(from: mgrPrefs.alphanumericalKeyboardLayout) == nil {
|
||||||
|
mgrPrefs.alphanumericalKeyboardLayout = kDefaultAlphanumericalKeyboardLayout
|
||||||
|
}
|
||||||
// 其它多元選項參數自動糾錯。
|
// 其它多元選項參數自動糾錯。
|
||||||
if ![0, 1, 2].contains(specifyIntonationKeyBehavior) {
|
if ![0, 1, 2].contains(specifyIntonationKeyBehavior) {
|
||||||
specifyIntonationKeyBehavior = 0
|
specifyIntonationKeyBehavior = 0
|
||||||
|
|
Loading…
Reference in New Issue