Kaynağa Gözat

【顶部菜单栏】主题模块是付费功能,且主题显示不全面,缺少自定义内容

liujiajie 10 ay önce
ebeveyn
işleme
55dfb12a3a

+ 4 - 4
PDF Office/PDF Master/Base.lproj/Main.storyboard

@@ -1246,25 +1246,25 @@ CA
                                                             <action selector="themesColor:" target="Ady-hI-5gd" id="HLl-GU-gSk"/>
                                                         </connections>
                                                     </menuItem>
-                                                    <menuItem title="Themes1" tag="4" hidden="YES" id="DWn-PU-6hc">
+                                                    <menuItem title="Themes1" tag="4" id="DWn-PU-6hc">
                                                         <modifierMask key="keyEquivalentModifierMask"/>
                                                         <connections>
                                                             <action selector="themesColor:" target="Ady-hI-5gd" id="8T5-Lt-1gP"/>
                                                         </connections>
                                                     </menuItem>
-                                                    <menuItem title="Themes2" tag="5" hidden="YES" id="YvI-0f-WA5">
+                                                    <menuItem title="Themes2" tag="5" id="YvI-0f-WA5">
                                                         <modifierMask key="keyEquivalentModifierMask"/>
                                                         <connections>
                                                             <action selector="themesColor:" target="Ady-hI-5gd" id="hII-p1-9lS"/>
                                                         </connections>
                                                     </menuItem>
-                                                    <menuItem title="Themes3" tag="6" hidden="YES" id="i1z-vh-727">
+                                                    <menuItem title="Themes3" tag="6" id="i1z-vh-727">
                                                         <modifierMask key="keyEquivalentModifierMask"/>
                                                         <connections>
                                                             <action selector="themesColor:" target="Ady-hI-5gd" id="a5H-OG-3BX"/>
                                                         </connections>
                                                     </menuItem>
-                                                    <menuItem title="Themes4" tag="7" hidden="YES" id="o8C-LV-ujc">
+                                                    <menuItem title="Themes4" tag="7" id="o8C-LV-ujc">
                                                         <modifierMask key="keyEquivalentModifierMask"/>
                                                         <connections>
                                                             <action selector="themesColor:" target="Ady-hI-5gd" id="TKn-6z-q43"/>

+ 57 - 5
PDF Office/PDF Master/Class/PDFWindowController/ViewController/KMMainViewController+MenuAction.swift

@@ -424,10 +424,29 @@ extension KMMainViewController {
             self.listView.displayMode = .night
         } else if mode == 3 {
             self.listView.displayMode = .green
+        } else {
+            self.listView.displayMode = .custom
+            
+            var data: Data? = nil
+            if let themesData = UserDefaults.standard.object(forKey: "kKMPDFViewModeThemesArray") as? Data {
+                data = themesData
+            }
+            let appArray = NSKeyedUnarchiver.unarchiveObject(with: data ?? Data()) as? [Any] ?? []
+            let mutableArray = appArray
+            if mutableArray.count > 0 {
+                let themesArray = mutableArray as! [NSColor]
+                let color = themesArray[mode]
+                self.listView.displayModeCustomColor = color
+            }
         }
         
         self.listView.layoutDocumentView()
         self.listView.setNeedsDisplayForVisiblePages()
+        
+//        [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInteger:mode] forKey:@"kPDFViewModeKey"];
+//        [[NSUserDefaults standardUserDefaults] synchronize];
+        UserDefaults.standard.set(mode, forKey: "kPDFViewModeKey")
+        UserDefaults.standard.synchronize()
     }
     
     @IBAction func toggleStatusBar(_ sender: Any?) {
@@ -1476,16 +1495,49 @@ extension KMMainViewController: NSMenuItemValidation, NSMenuDelegate {
                 return true
             } else if action == KMSystemMenu.View.themesColorSelector {
                 let mode = menuItem.tag
+                
+                var viewMode: KMPDFViewMode = .normal
+                if let storedViewMode = UserDefaults.standard.value(forKey: "kPDFViewModeKey") as? Int {
+                    viewMode = KMPDFViewMode(rawValue: UInt(storedViewMode)) ?? .normal
+                }
+
                 if mode == 0 {
-                    menuItem.state = self.listView.displayMode == .normal ? .on : .off
+                    menuItem.state = viewMode == .normal ? .on : .off
                 } else if mode == 1 {
-                    menuItem.state = self.listView.displayMode == .soft ? .on : .off
+                    menuItem.state = viewMode == .soft ? .on : .off
                 } else if mode == 2 {
-                    menuItem.state = self.listView.displayMode == .night ? .on : .off
+                    menuItem.state = viewMode == .night ? .on : .off
                 } else if mode == 3 {
-                    menuItem.state = self.listView.displayMode == .green ? .on : .off
+                    menuItem.state = viewMode == .green ? .on : .off
+                } else if mode == 4 {
+                    menuItem.state = viewMode == .themes1 ? .on : .off
+                } else if mode == 5 {
+                    menuItem.state = viewMode == .themes2 ? .on : .off
+                } else if mode == 6 {
+                    menuItem.state = viewMode == .themes3 ? .on : .off
+                } else if mode == 7 {
+                    menuItem.state = viewMode == .themes4 ? .on : .off
                 }
-                return true
+                
+                var data: Data? = nil
+                if let themesData = UserDefaults.standard.object(forKey: "kKMPDFViewModeThemesArray") as? Data {
+                    data = themesData
+                }
+                var themesCount = 0
+                let appArray = NSKeyedUnarchiver.unarchiveObject(with: data ?? Data()) as? [Any] ?? []
+                if appArray.count > 0 {
+                    themesCount = menuItem.tag - appArray.count
+                } else {
+                    themesCount = menuItem.tag - 4
+                }
+                if themesCount >= 0 {
+                    menuItem.isHidden = true
+                    return false
+                }else {
+                    menuItem.isHidden = false
+                    return true
+                }
+//                return true
             } else if action == KMSystemMenu.View.splitViewActionSelector {
                 let mode = menuItem.tag
                 if mode == 0 { // hor