KeyHandler // Deprecating CFStringTransform(), etc.
This commit is contained in:
parent
2cd43f8a69
commit
55c469bf31
|
@ -14,6 +14,7 @@ extension NSEvent: InputSignalProtocol {}
|
|||
// MARK: - InputSignalProtocol
|
||||
|
||||
public protocol InputSignalProtocol {
|
||||
var modifierFlags: NSEvent.ModifierFlags { get }
|
||||
var isTypingVertical: Bool { get }
|
||||
var text: String { get }
|
||||
var inputTextIgnoringModifiers: String? { get }
|
||||
|
|
|
@ -318,14 +318,12 @@ extension KeyHandler {
|
|||
// MARK: 全形/半形阿拉伯數字輸入 (FW / HW Arabic Numbers Input)
|
||||
|
||||
if state.type == .ofEmpty {
|
||||
if input.isMainAreaNumKey, input.isShiftHold, input.isOptionHold, !input.isControlHold, !input.isCommandHold {
|
||||
// NOTE: 將來棄用 macOS 10.11 El Capitan 支援的時候,把這裡由 CFStringTransform 改為 StringTransform:
|
||||
// https://developer.apple.com/documentation/foundation/stringtransform
|
||||
if input.isMainAreaNumKey, input.modifierFlags == [.shift, .option] {
|
||||
guard let stringRAW = input.mainAreaNumKeyChar else { return false }
|
||||
let string = NSMutableString(string: stringRAW)
|
||||
CFStringTransform(string, nil, kCFStringTransformFullwidthHalfwidth, true)
|
||||
let newStringFW = stringRAW.applyingTransform(.fullwidthToHalfwidth, reverse: true) ?? stringRAW
|
||||
let newStringHW = stringRAW.applyingTransform(.fullwidthToHalfwidth, reverse: false) ?? stringRAW
|
||||
stateCallback(
|
||||
IMEState.ofCommitting(textToCommit: prefs.halfWidthPunctuationEnabled ? stringRAW : string as String)
|
||||
IMEState.ofCommitting(textToCommit: prefs.halfWidthPunctuationEnabled ? newStringHW : newStringFW)
|
||||
)
|
||||
stateCallback(IMEState.ofEmpty())
|
||||
return true
|
||||
|
|
Loading…
Reference in New Issue