Browse Source

【UI】夜间模式调整

wanjun 9 months ago
parent
commit
4a10b811d2

+ 6 - 0
PDF Office/PDF Master/AppDelegate.swift

@@ -383,6 +383,12 @@ class AppDelegate: NSObject, NSApplicationDelegate, iRateDelegate{
 //        } else {
 //            NSApp.appearance = .init(named: .darkAqua)
 //        }
+        let isDarkModel = NSView.isDarkModel()
+        if isDarkModel {
+            NSApp.appearance = .init(named: .darkAqua)
+        } else {
+            NSApp.appearance = .init(named: .aqua)
+        }
         NotificationCenter.default.post(name: Notification.Name(rawValue: "kEffectiveAppearance"), object: nil)
     }
     

+ 6 - 1
PDF Office/PDF Master/Class/ChromiumTabs/KMBrowserWindowController.swift

@@ -186,7 +186,12 @@ import Cocoa
     
     @objc private func _themeChanged(_ sender: Notification) {
         
-        self.window?.appearance = .init(named: .aqua)
+        let isDarkModel = NSView.isDarkModel()
+        if isDarkModel {
+            self.window?.appearance = .init(named: .darkAqua)
+        } else {
+            self.window?.appearance = .init(named: .aqua)
+        }
 
         self.window?.contentView?.appearance = self.window?.appearance ?? .init(named: .aqua)
         

+ 1 - 1
PDF Office/PDF Master/Class/ChromiumTabs/src/Tab/CTTabController.m

@@ -174,7 +174,7 @@ static NSString* const kBrowserThemeDidChangeNotification =
     self.tabView.wantsLayer = YES;
     NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
     
-    BOOL isDarkModel = NO;
+    BOOL isDarkModel = [NSView isDarkModel];
     NSColor *backgroundColor_Norm = [NSColor km_initWithHex:@"#D5D5D5" alpha:1];
     NSColor *backgroundColor_Hov = [NSColor km_initWithHex:@"#FCFDFF" alpha:1];
     NSColor *backgroundColor_Sel = [NSColor km_initWithHex:@"#FCFDFF" alpha:1];

+ 7 - 2
PDF Office/PDF Master/Class/Common/Base/KMBaseWindowController.swift

@@ -50,8 +50,13 @@ class KMBaseWindowController: NSWindowController {
 
 extension KMBaseWindowController {
     @objc private func _themeChanged(_ sender: Notification) {
-        self.window?.appearance = .init(named: .aqua)
-        
+        let isDarkModel = NSView.isDarkModel()
+        if isDarkModel {
+            self.window?.appearance = .init(named: .darkAqua)
+        } else {
+            self.window?.appearance = .init(named: .aqua)
+        }
+
         Task { @MainActor in
             self.interfaceThemeDidChanged(self.window?.appearance?.name ?? .aqua)
         }

+ 37 - 0
PDF Office/PDF Master/Class/Common/Category/NSView+KMExtension.swift

@@ -107,6 +107,43 @@ extension NSView: KMLoadingProtocol {
     }
     
     @objc private func loadingMask_Click() {}
+    
+    @objc static func isDarkModel() -> Bool {
+#if os(iOS)
+        if #available(iOS 12.0, *) {
+            if UITraitCollection.current.userInterfaceStyle == UIUserInterfaceStyle.dark {
+                return true
+            } else {
+                return false
+            }
+        }
+#elseif os(OSX)
+        if #available(macOS 10.14, *) {
+            let dict = UserDefaults.standard.persistentDomain(forName: UserDefaults.globalDomain) ?? nil
+            guard let dicts: Dictionary = dict else {
+//                print("不是字典类型")
+                return false
+            }
+            
+            guard let style = dicts["AppleInterfaceStyle"] as? String else {
+//                print("style is not string")
+                return false
+            }
+            
+            let isDarkMode : Bool = style.compare("Dark").rawValue == 0
+            
+            if isDarkMode {
+//                print("暗黑模式\(style)")
+                return true
+            } else {
+//                print("正常模式\(style)")
+                return false
+            }
+        } else {
+            return false
+        }
+#endif
+    }
 }
 
 // MARK: - SheetWindow

+ 6 - 1
PDF Office/PDF Master/Class/Home/ViewController/KMHomeViewController.swift

@@ -408,7 +408,12 @@ import Cocoa
     }
     
     @objc func changeEffectiveAppearance() {
-        self.view.appearance = NSAppearance(named: .aqua)
+        let isDarkModel = NSView.isDarkModel()
+        if isDarkModel {
+            self.view.appearance = NSAppearance(named: .darkAqua)
+        } else {
+            self.view.appearance = NSAppearance(named: .aqua)
+        }
 
         self.updateUI()
     }

+ 6 - 1
PDF Office/PDF Master/Class/PDFTools/Tools/KMBaseXibView/KMBaseXibView.swift

@@ -115,7 +115,12 @@ class KMBaseXibView: NSView {
     }
     
     @objc func changeEffectiveAppearance() {
-        self.appearance = NSAppearance(named: .aqua)
+        let isDarkModel = NSView.isDarkModel()
+        if isDarkModel {
+            self.appearance = NSAppearance(named: .darkAqua)
+        } else {
+            self.appearance = NSAppearance(named: .aqua)
+        }
 
         self.updateUI()
     }

+ 8 - 3
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/AnnotationProperty/KMAnnotationPropertiesViewController.m

@@ -94,9 +94,14 @@
 }
 
 - (void)changeEffectiveAppearance {
-    self.view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
-    self.view.layer.backgroundColor = [NSColor km_initWithHex:@"#FAFAFA" alpha:1].CGColor;
-
+    BOOL isDarkModel = [NSView isDarkModel];
+    if (isDarkModel) {
+        self.view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameDarkAqua];
+        self.view.layer.backgroundColor = [NSColor km_initWithHex:@"#252526" alpha:1].CGColor;
+    } else {
+        self.view.appearance = [NSAppearance appearanceNamed:NSAppearanceNameAqua];
+        self.view.layer.backgroundColor = [NSColor km_initWithHex:@"#FAFAFA" alpha:1].CGColor;
+    }
 }
 
 - (void)loadView {

+ 14 - 4
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditImagePropertyViewController.swift

@@ -102,14 +102,24 @@ class KMEditImagePropertyViewController: NSViewController {
     
     @objc func changeEffectiveAppearance() {
         print("changeEffectiveAppearance")
-        self.view.appearance = NSAppearance(named: .aqua)
-
+        let isDarkModel = NSView.isDarkModel()
+        if isDarkModel {
+            self.view.appearance = NSAppearance(named: .darkAqua)
+        } else {
+            self.view.appearance = NSAppearance(named: .aqua)
+        }
         self.updateUI()
     }
     
     func updateUI() {
-        self.backgroundView.backgroundColor(NSColor.km_init(hex: "#FAFAFA"))
-        self.noBackgroundView.backgroundColor(NSColor.km_init(hex: "#F7F8FA"))
+        let isDarkModel = NSView.isDarkModel()
+        if isDarkModel {
+            self.backgroundView.backgroundColor(NSColor.km_init(hex: "#252526"))
+            self.noBackgroundView.backgroundColor(NSColor.km_init(hex: "#252526"))
+        } else {
+            self.backgroundView.backgroundColor(NSColor.km_init(hex: "#FAFAFA"))
+            self.noBackgroundView.backgroundColor(NSColor.km_init(hex: "#F7F8FA"))
+        }
     }
     
     deinit {

+ 12 - 3
PDF Office/PDF Master/Class/PDFWindowController/Side/RightSide/EditPDF/KMEditPDFTextPropertyViewController.swift

@@ -126,14 +126,23 @@ class KMEditPDFTextPropertyViewController: NSViewController {
     
     @objc func changeEffectiveAppearance() {
         print("changeEffectiveAppearance")
-        self.view.appearance = NSAppearance(named: .aqua)
+        let isDarkModel = NSView.isDarkModel()
+        if isDarkModel {
+            self.view.appearance = NSAppearance(named: .darkAqua)
+        } else {
+            self.view.appearance = NSAppearance(named: .aqua)
+        }
 
         self.updateUI()
     }
     
     func updateUI() {
-        self.backgroundView.backgroundColor(NSColor.km_init(hex: "#FAFAFA"))
-
+        let isDarkModel = NSView.isDarkModel()
+        if isDarkModel {
+            self.backgroundView.backgroundColor(NSColor.km_init(hex: "#252526"))
+        } else {
+            self.backgroundView.backgroundColor(NSColor.km_init(hex: "#FAFAFA"))
+        }
     }
     
     override func viewDidLoad() {