// 判断的方式
NSDictionary *dict = [[NSUserDefaults standardUserDefaults] persistentDomainForName:NSGlobalDomain];
id style = [dict objectForKey:@"AppleInterfaceStyle"];
BOOL isDarkMode = ( style && [style isKindOfClass:[NSString class]] && NSOrderedSame == [style caseInsensitiveCompare:@"dark"] );
if (isDarkMode) {
NSLog(@"黑夜模式");
} else {
NSLog(@"正常模式");
}
// 动态监听 Mode 的修改
NSString * const darkModeNotificationName = @"AppleInterfaceThemeChangedNotification";
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(updateDarkMode) name:darkModeNotificationName object:nil];
// 监听的修改方法
- (void)updateDarkMode {
NSDictionary *dict = [[NSUserDefaults standardUserDefaults] persistentDomainForName:NSGlobalDomain];
id style = [dict objectForKey:@"AppleInterfaceStyle"];
BOOL isDarkMode = ( style && [style isKindOfClass:[NSString class]] && NSOrderedSame == [style caseInsensitiveCompare:@"dark"] );
if (isDarkMode) {
NSLog(@"黑夜模式");
} else {
NSLog(@"正常模式");
}
}
// 判断的方式 监听方式如上使用 swift 的方式即可
let dict = UserDefaults.standard.persistentDomain(forName: UserDefaults.globalDomain) ?? nil
guard let dicts: Dictionary = dict else {
print("不是字典类型")
return
}
guard let style = dicts["AppleInterfaceStyle"] as? String else {
print("style is not string")
return
}
let isDarkMode : Bool = style.compare("Dark").rawValue == 0
if isDarkMode {
print("暗黑模式\(style)")
} else {
print("正常模式\(style)")
}
网友评论