From ce6d91394869f7b6f7d8c3a5ba4438c3da6c8a52 Mon Sep 17 00:00:00 2001 From: ShikiSuen Date: Wed, 6 Jul 2022 12:34:35 +0800 Subject: [PATCH] IME // Use isPrintableASCII in lieu of CTools. --- .../Modules/ControllerModules/KeyHandler_HandleInput.swift | 6 ++---- Source/Modules/IMEModules/IME.swift | 4 ++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift b/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift index a77b9533..8f54848f 100644 --- a/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift +++ b/Source/Modules/ControllerModules/KeyHandler_HandleInput.swift @@ -95,9 +95,7 @@ extension KeyHandler { /// 如果是 ASCII 當中的不可列印的字元的話,不使用「insertText:replacementRange:」。 /// 某些應用無法正常處理非 ASCII 字符的輸入。 - /// 注意:這裡一定要用 Objective-C 的 isPrintable() 函式來處理,否則無效。 - /// 這個函式已經包裝在 CTools.h 裡面了,這樣就可以拿給 Swift 用。 - if charCode < 0x80, !CTools.isPrintable(charCode) { + if charCode < 0x80, !charCode.isPrintableASCII { return false } @@ -112,7 +110,7 @@ extension KeyHandler { if input.isNumericPad { if !input.isLeft, !input.isRight, !input.isDown, - !input.isUp, !input.isSpace, CTools.isPrintable(charCode) + !input.isUp, !input.isSpace, charCode.isPrintableASCII { clear() stateCallback(InputState.Empty()) diff --git a/Source/Modules/IMEModules/IME.swift b/Source/Modules/IMEModules/IME.swift index e79a040d..cd9a72e1 100644 --- a/Source/Modules/IMEModules/IME.swift +++ b/Source/Modules/IMEModules/IME.swift @@ -420,6 +420,10 @@ extension UniChar { } return true } + + public var isPrintableASCII: Bool { + (32...126).contains(self) + } } // MARK: - Stable Sort Extension