ctlIME // Simplify symbol menu processings for IMKCandidates.

This commit is contained in:
ShikiSuen 2022-08-27 15:10:43 +08:00
parent 8678eb81ad
commit 254934b219
1 changed files with 25 additions and 4 deletions

View File

@ -313,9 +313,15 @@ class ctlInputMethod: IMKInputController {
if let state = state as? InputState.AssociatedPhrases {
handleCandidatesPrepared(state.candidates, prefix: "")
} else if let state = state as? InputState.SymbolTable {
handleCandidatesPrepared(state.candidates)
// / JIS 使
arrResult = state.candidates.map(\.1)
} else if let state = state as? InputState.ChoosingCandidate {
handleCandidatesPrepared(state.candidates)
guard !state.candidates.isEmpty else { return .init() }
if state.candidates[0].0.contains("_punctuation") {
arrResult = state.candidates.map(\.1) //
} else {
handleCandidatesPrepared(state.candidates)
}
}
return arrResult
@ -372,12 +378,27 @@ class ctlInputMethod: IMKInputController {
}
}
// / JIS 使
func handleSymbolCandidatesSelected(_ candidates: [(String, String)]) {
for (i, neta) in candidates.enumerated() {
if candidateString.string == neta.1 {
indexDeducted = i
break
}
}
}
if let state = state as? InputState.AssociatedPhrases {
handleCandidatesSelected(state.candidates, prefix: "")
} else if let state = state as? InputState.SymbolTable {
handleCandidatesSelected(state.candidates)
handleSymbolCandidatesSelected(state.candidates)
} else if let state = state as? InputState.ChoosingCandidate {
handleCandidatesSelected(state.candidates)
guard !state.candidates.isEmpty else { return }
if state.candidates[0].0.contains("_punctuation") {
handleSymbolCandidatesSelected(state.candidates) //
} else {
handleCandidatesSelected(state.candidates)
}
}
keyHandler(
keyHandler,