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