Browse Source

【fix】【BOTA】注释列表的分组,默认应该是按页面才对(参考Windows)

tangchao 5 months ago
parent
commit
9d4c8c685d

+ 47 - 0
PDF Office/PDF Master/Class/Common/DataManager/KMDataManager.swift

@@ -212,3 +212,50 @@ extension KMDataManager {
         }
     }
 }
+
+// MARK: - UserDefault 的补充
+
+extension KMDataManager {
+    private static let userD_dirname_key_ = "KMUserDefaultExtension"
+    private static let userD_filename_key_ = "KMUserDefaultExtension.plist"
+    
+    // 保存数据 [清空数据时传nil]
+    class func udExtension_set(_ value: Any?, forKey defaultName: String) {
+        // 存储文件路径
+        let dir = self.fetchAppSupportOfBundleIdentifierDirectory().appendingPathComponent(self.userD_dirname_key_)
+        if FileManager.default.fileExists(atPath: dir.path) == false {
+            try?FileManager.default.createDirectory(at: dir, withIntermediateDirectories: false)
+        }
+        // 存储文件名称
+        let fileUrl = dir.appendingPathComponent(self.userD_filename_key_)
+        if FileManager.default.fileExists(atPath: fileUrl.path) == false {
+            try?FileManager.default.createFile(atPath: fileUrl.path, contents: nil)
+        }
+        
+        // 获取原始文件数据
+        var info = NSMutableDictionary()
+        if let data = try?NSDictionary(contentsOf: fileUrl, error: ()) {
+            info.addEntries(from: data as? [AnyHashable : Any] ?? [:])
+        }
+        
+        // 保存数据
+        info.setObject(value as Any, forKey: defaultName as NSCopying)
+        info.write(to: fileUrl, atomically: true)
+    }
+    
+    // 获取数据
+    class func udExtension_object(forKey defaultName: String) -> Any? {
+        // 查找文件
+        let dir = self.fetchAppSupportOfBundleIdentifierDirectory().appendingPathComponent(self.userD_dirname_key_)
+        let fileUrl = dir.appendingPathComponent(self.userD_filename_key_)
+        guard let dict = NSDictionary(contentsOfFile: fileUrl.path) else {
+            return nil
+        }
+        // 获取数据
+        if dict.count == 0 {
+            return nil
+        }
+        
+        return dict[defaultName]
+    }
+}

+ 9 - 2
PDF Office/PDF Master/Class/PDFWindowController/Side/LeftSide/KMLeftSideViewController+Note.swift

@@ -167,7 +167,11 @@ extension KMLeftSideViewController {
 //        self.noteHeaderView.wantsLayer = true
 //        self.noteHeaderView.layer?.backgroundColor = KMAppearance.Else.textTagColor().cgColor
 //        self.noteHeaderView.layer?.cornerRadius = 1.0
-        let sortType = KMDataManager.ud_integer(forKey: Self.Key.noteSortTypeKey)
+//        let sortType = KMDataManager.ud_integer(forKey: Self.Key.noteSortTypeKey)
+        var sortType = 0
+        if let data = self.listView?.document?.documentURL.path {
+            sortType = KMDataManager.udExtension_object(forKey: Self.Key.noteSortTypeKey + data) as? Int ?? 0
+        }
         if (sortType == 1) {
             self.noteSortType = KMNoteSortType(rawValue: sortType) ?? .none
             if (self.noteSortType == .time) {
@@ -889,7 +893,10 @@ extension KMLeftSideViewController {
             self.sortTypeLabel.stringValue = KMLocalizedString("Time", nil)
             self.sortTypeBox.toolTip = KMLocalizedString("Time", nil)
         }
-        KMDataManager.ud_set(self.noteSortType.rawValue, forKey: Self.Key.noteSortTypeKey)
+//        KMDataManager.ud_set(self.noteSortType.rawValue, forKey: Self.Key.noteSortTypeKey)
+        if let data = self.listView?.document?.documentURL.path {
+            KMDataManager.udExtension_set(self.noteSortType.rawValue, forKey: Self.Key.noteSortTypeKey + data)
+        }
         
         if self.noteSearchMode {
             self.reloadNoteForSearchMode()