From f6c42d1a709e55de9895c564401165ca6c2e3f8e Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Fri, 29 May 2026 01:06:51 +0800
Subject: [PATCH] Rename app grid shared support file
---
Apptag/QuickSearch.swift | 36 ++++++++++++++++++++++++++++++------
1 files changed, 30 insertions(+), 6 deletions(-)
diff --git a/Apptag/QuickSearch.swift b/Apptag/QuickSearch.swift
index 6056150..140861f 100644
--- a/Apptag/QuickSearch.swift
+++ b/Apptag/QuickSearch.swift
@@ -379,15 +379,14 @@
) -> [QuickSearchIndexedField] {
let names = uniqueOrdered([appName] + localizedNames)
let nameFields = names.map {
- let allowsRomanizedFuzzy = containsNonLatinLetter($0)
return QuickSearchIndexedField(
kind: .name,
text: $0,
normalized: normalizeField($0),
acronym: acronym(for: $0),
- pinyinCandidates: pinyinCandidates(for: $0),
- allowPinyinSubstring: allowsRomanizedFuzzy,
- allowPinyinFuzzySubsequence: allowsRomanizedFuzzy
+ pinyinCandidates: pinyinCandidates(for: $0, includeLatin: true),
+ allowPinyinSubstring: true,
+ allowPinyinFuzzySubsequence: true
)
}
let tagFields = tagNames.map {
@@ -605,8 +604,8 @@
.lowercased()
}
- private static func pinyinCandidates(for value: String) -> [String] {
- guard containsNonLatinLetter(value) else { return [] }
+ private static func pinyinCandidates(for value: String, includeLatin: Bool = false) -> [String] {
+ guard includeLatin || containsNonLatinLetter(value) else { return [] }
let mutable = NSMutableString(string: value)
CFStringTransform(mutable, nil, kCFStringTransformToLatin, false)
CFStringTransform(mutable, nil, kCFStringTransformStripCombiningMarks, false)
@@ -966,6 +965,7 @@
field.placeholderString = placeholder
field.delegate = context.coordinator
field.onCommand = onCommand
+ context.coordinator.onCommand = onCommand
field.setAccessibilityLabel(tr("quickSearch.inputAccessibility"))
context.coordinator.field = field
requestFocus(field)
@@ -978,6 +978,7 @@
}
field.placeholderString = placeholder
field.onCommand = onCommand
+ context.coordinator.onCommand = onCommand
if context.coordinator.lastFocusToken != focusToken {
context.coordinator.lastFocusToken = focusToken
requestFocus(field)
@@ -1000,6 +1001,7 @@
final class Coordinator: NSObject, NSTextFieldDelegate {
var text: Binding<String>
var lastFocusToken = 0
+ var onCommand: ((QuickSearchCommand) -> Void)?
weak var field: NSTextField?
init(text: Binding<String>) {
@@ -1010,6 +1012,28 @@
guard let field = obj.object as? NSTextField else { return }
text.wrappedValue = field.stringValue
}
+
+ func control(_ control: NSControl, textView: NSTextView, doCommandBy commandSelector: Selector) -> Bool {
+ switch commandSelector {
+ case #selector(NSResponder.moveUp(_:)):
+ onCommand?(.moveUp)
+ return true
+ case #selector(NSResponder.moveDown(_:)):
+ onCommand?(.moveDown)
+ return true
+ case #selector(NSResponder.insertNewline(_:)):
+ onCommand?(.submit)
+ return true
+ case #selector(NSResponder.insertNewlineIgnoringFieldEditor(_:)):
+ onCommand?(.submit)
+ return true
+ case #selector(NSResponder.cancelOperation(_:)):
+ onCommand?(.dismiss)
+ return true
+ default:
+ return false
+ }
+ }
}
}
--
Gitblit v1.9.3