From a329d6b7c2984fedf0bbe4865ca7d1cdc704dcac Mon Sep 17 00:00:00 2001 From: Jakey <6077782@qq.com> Date: Thu, 23 Feb 2023 13:49:14 +0800 Subject: [PATCH] dark mode fix --- SmartPush.xcodeproj/project.pbxproj | 4 +- SmartPush/Base.lproj/Main.storyboard | 68 ++++++++++++++++++++-------- SmartPush/PushViewController.h | 2 +- SmartPush/PushViewController.m | 36 ++++++++++----- 4 files changed, 76 insertions(+), 34 deletions(-) diff --git a/SmartPush.xcodeproj/project.pbxproj b/SmartPush.xcodeproj/project.pbxproj index 00a5f68..663c801 100644 --- a/SmartPush.xcodeproj/project.pbxproj +++ b/SmartPush.xcodeproj/project.pbxproj @@ -341,7 +341,7 @@ INFOPLIST_FILE = SmartPush/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; - MARKETING_VERSION = 3.1; + MARKETING_VERSION = 3.2; PRODUCT_BUNDLE_IDENTIFIER = org.skyfox.SmartPush; PRODUCT_NAME = "$(TARGET_NAME)"; }; @@ -355,7 +355,7 @@ INFOPLIST_FILE = SmartPush/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.10; - MARKETING_VERSION = 3.1; + MARKETING_VERSION = 3.2; PRODUCT_BUNDLE_IDENTIFIER = org.skyfox.SmartPush; PRODUCT_NAME = "$(TARGET_NAME)"; }; diff --git a/SmartPush/Base.lproj/Main.storyboard b/SmartPush/Base.lproj/Main.storyboard index 53315f7..ffb6665 100644 --- a/SmartPush/Base.lproj/Main.storyboard +++ b/SmartPush/Base.lproj/Main.storyboard @@ -1,9 +1,9 @@ - + - - + + @@ -40,7 +40,7 @@ - + @@ -429,15 +429,6 @@ - - - - - - - - - @@ -544,18 +535,18 @@ - + - + - + - + @@ -566,7 +557,7 @@ - + @@ -662,6 +653,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -670,7 +698,7 @@ - + @@ -679,7 +707,7 @@ - + diff --git a/SmartPush/PushViewController.h b/SmartPush/PushViewController.h index 1ed005c..b8c44f7 100644 --- a/SmartPush/PushViewController.h +++ b/SmartPush/PushViewController.h @@ -29,7 +29,7 @@ NSUserDefaults *_defaults; NSMutableArray *_certificates; } -@property (weak) IBOutlet NSTextField *payload; +@property (unsafe_unretained) IBOutlet NSTextView *payload; @property (unsafe_unretained) IBOutlet NSTextView *logTextView; @property (weak) IBOutlet NSMatrix *mode; @property (weak) IBOutlet NSButtonCell *devSelect; diff --git a/SmartPush/PushViewController.m b/SmartPush/PushViewController.m index 23e3904..537c87f 100644 --- a/SmartPush/PushViewController.m +++ b/SmartPush/PushViewController.m @@ -24,7 +24,8 @@ @implementation PushViewController - (void)viewDidLoad { [super viewDidLoad]; - self.payload.stringValue = @"{\"aps\":{\"alert\":\"This is some fancy message.\",\"badge\":6,\"sound\": \"default\"}}"; + self.payload.string = @"{\"aps\":{\"alert\":\"This is some fancy message.\",\"badge\":6,\"sound\": \"default\"}}"; + // [[ NSUserDefaults standardUserDefaults] removeObjectForKey:KEY_CERNAME]; // [[ NSUserDefaults standardUserDefaults] removeObjectForKey:KEY_CER]; @@ -131,7 +132,7 @@ - (void)loadUserData{ [self.tokenTextField setStringValue:[_defaults valueForKey:KEY_TOKEN]]; if ([[_defaults valueForKey:KEY_Payload] description].length>0) - [self.payload setStringValue:[_defaults valueForKey:KEY_Payload]]; + self.payload.string = [_defaults valueForKey:KEY_Payload]; if ([[_defaults valueForKey:KEY_CERNAME] description].length>0) _cerName = [_defaults valueForKey:KEY_CERNAME]; @@ -142,7 +143,8 @@ - (void)loadUserData{ - (void)saveUserData{ [_defaults setValue:_lastCerPath forKey:KEY_CER]; [_defaults setValue:self.tokenTextField.stringValue forKey:KEY_TOKEN]; - [_defaults setValue:self.payload.stringValue forKey:KEY_Payload]; + [_defaults setValue:self.payload.string forKey:KEY_Payload]; + [_defaults setValue:_cerName forKey:KEY_CERNAME]; [_defaults synchronize]; } @@ -255,7 +257,7 @@ - (IBAction)push:(id)sender { NSString *token = [self.tokenTextField.stringValue stringByReplacingOccurrencesOfString:@" " withString:@""]; - [[NetworkManager sharedManager] postWithPayload:self.payload.stringValue + [[NetworkManager sharedManager] postWithPayload:self.payload.string toToken:token withTopic:_currentSec?_currentSec.topicName:@"" priority:self.prioritySegmentedControl.selectedTag @@ -294,21 +296,25 @@ - (IBAction)playLoadTypeTouched:(id)sender { } - (IBAction)payLoadButtonTouched:(NSPopUpButton*)sender { + NSString *stringValue = @""; switch (sender.indexOfSelectedItem) { case 1: - self.payload.stringValue = @"{\"aps\":{\"alert\":\"This is some fancy message.\"}}"; + stringValue = @"{\"aps\":{\"alert\":\"This is some fancy message.\"}}"; break; case 2: - self.payload.stringValue = @"{\"aps\":{\"alert\":\"This is some fancy message.\",\"badge\":6}}"; + stringValue = @"{\"aps\":{\"alert\":\"This is some fancy message.\",\"badge\":6}}"; break; case 3: - self.payload.stringValue = @"{\"aps\":{\"alert\":\"This is some fancy message.\",\"badge\":6,\"sound\": \"default\"}}"; + stringValue = @"{\"aps\":{\"alert\":\"This is some fancy message.\",\"badge\":6,\"sound\": \"default\"}}"; break; default: - self.payload.stringValue = @"{\"aps\":{\"alert\":\"This is some fancy message.\",\"badge\":6,\"sound\": \"default\"}}"; + stringValue = @"{\"aps\":{\"alert\":\"This is some fancy message.\",\"badge\":6,\"sound\": \"default\"}}"; break; + } - + + self.payload.string = stringValue; + } - (void)browseDone:(void (^)(NSString *url))complete{ @@ -352,7 +358,7 @@ - (void)log:(NSString *)message warning:(BOOL)warning { dispatch_async(dispatch_get_main_queue(), ^{ if (message.length>0) { - NSDictionary *attributes = @{NSForegroundColorAttributeName:warning?[NSColor redColor]:[NSColor blackColor] , NSFontAttributeName: [NSFont systemFontOfSize:12]}; + NSDictionary *attributes = @{NSForegroundColorAttributeName:warning?[NSColor redColor]:([self isDarkMode]?[NSColor whiteColor]:[NSColor blackColor]) , NSFontAttributeName: [NSFont systemFontOfSize:12]}; NSAttributedString *string = [[NSAttributedString alloc] initWithString:message attributes:attributes]; [self.logTextView.textStorage appendAttributedString:string]; [self.logTextView.textStorage.mutableString appendString:@"\n"]; @@ -376,5 +382,13 @@ - (void)setRepresentedObject:(id)representedObject { // Update the view, if already loaded. } - + +- (BOOL)isDarkMode { + if (@available(macOS 10.14, *)) { + NSDictionary *dict = [[NSUserDefaults standardUserDefaults] persistentDomainForName:NSGlobalDomain]; + BOOL isDarkMode = [[dict objectForKey:@"AppleInterfaceStyle"] isEqualToString:@"Dark"]; + return isDarkMode; + } + return NO; +} @end