InputHandler // Use applyingTransformFW2HW().

This commit is contained in:
ShikiSuen 2023-02-08 13:58:53 +08:00
parent f103335d5c
commit 2cdc64b1ff
3 changed files with 15 additions and 3 deletions

View File

@ -134,6 +134,19 @@ public extension NSApplication {
}
}
// MARK: - String.applyingTransform
public extension String {
func applyingTransformFW2HW(reverse: Bool) -> String {
if #available(macOS 10.11, *) {
return applyingTransform(.fullwidthToHalfwidth, reverse: reverse) ?? self
}
let theString = NSMutableString(string: self)
CFStringTransform(theString, nil, kCFStringTransformFullwidthHalfwidth, reverse)
return theString as String
}
}
// MARK: - Check whether current date is the given date.
public extension Date {

View File

@ -235,8 +235,7 @@ extension InputHandler {
if state.type == .ofEmpty {
if input.isMainAreaNumKey, input.modifierFlags == [.shift, .option] {
guard let strRAW = input.mainAreaNumKeyChar else { return false }
let newString =
strRAW.applyingTransform(.fullwidthToHalfwidth, reverse: !prefs.halfWidthPunctuationEnabled) ?? strRAW
let newString = strRAW.applyingTransformFW2HW(reverse: !prefs.halfWidthPunctuationEnabled)
delegate.switchState(IMEState.ofCommitting(textToCommit: newString))
return true
}

View File

@ -130,7 +130,7 @@ public extension SessionCtl {
// Apple
if eventToDeal.isNumericPadKey,
let eventCharConverted = eventToDeal.characters?.applyingTransform(.fullwidthToHalfwidth, reverse: false)
let eventCharConverted = eventToDeal.characters?.applyingTransformFW2HW(reverse: false)
{
eventToDeal = eventToDeal.reinitiate(characters: eventCharConverted) ?? eventToDeal
}