From 8140d33412239eed7a6fbd8ad8ccfe7ab87ba9ce Mon Sep 17 00:00:00 2001
From: Ariver <ar@MacBook-Air.local>
Date: Wed, 06 May 2026 16:53:52 +0800
Subject: [PATCH] checkpoint: v3.0.6 — 新增标签行显示在列表最上面,确认后留在顶部(tagOrder 驱动排序)

---
 Apptag/TagEditorView.swift |   16 +++++++++-------
 Apptag/Info.plist          |    2 +-
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/Apptag/Info.plist b/Apptag/Info.plist
index f0275eb..a1c5d56 100644
--- a/Apptag/Info.plist
+++ b/Apptag/Info.plist
@@ -19,7 +19,7 @@
 	<key>CFBundlePackageType</key>
 	<string>APPL</string>
 	<key>CFBundleShortVersionString</key>
-	<string>3.0.4</string>
+	<string>3.0.6</string>
 	<key>CFBundleVersion</key>
 	<string>1</string>
 	<key>LSMinimumSystemVersion</key>
diff --git a/Apptag/TagEditorView.swift b/Apptag/TagEditorView.swift
index 4661760..7d15f82 100644
--- a/Apptag/TagEditorView.swift
+++ b/Apptag/TagEditorView.swift
@@ -16,9 +16,11 @@
     @State private var newTagColorIndex = 0
 
     private var sortedTagNames: [String] {
-        tagColors.keys
-            .filter { !excludedTagNames.contains($0) }
-            .sorted { $0.localizedStandardCompare($1) == .orderedAscending }
+        let order = TagEditor.orderedTagNames()
+        let filtered = tagColors.keys.filter { !excludedTagNames.contains($0) }
+        let ordered = order.filter { filtered.contains($0) }
+        let remaining = filtered.filter { !ordered.contains($0) }.sorted()
+        return ordered + remaining
     }
 
     var body: some View {
@@ -48,14 +50,14 @@
                             .foregroundStyle(.secondary)
                             .padding(.vertical, 40)
                     }
-                    ForEach(sortedTagNames, id: \.self) { tagName in
-                        tagEditRow(tagName)
-                        Divider().opacity(0.15).padding(.leading, 16)
-                    }
                     if addingNewTag {
                         newTagRow()
                         Divider().opacity(0.15).padding(.leading, 16)
                     }
+                    ForEach(sortedTagNames, id: \.self) { tagName in
+                        tagEditRow(tagName)
+                        Divider().opacity(0.15).padding(.leading, 16)
+                    }
                 }
             }
         }

--
Gitblit v1.9.3