macOS's dark mode (暗黑模式)
苹果在 macOS 10.14 中为我们带来了
dark mode
(暗黑模式) 功能
可以在 系统偏好设置
–通用
面板中开启暗黑模式
判断当前主题是否为暗黑模式
- (BOOL)isDarkMode {
if (@available(macOS 10.14, *)) {
NSDictionary *dict = [[NSUserDefaults standardUserDefaults] persistentDomainForName:NSGlobalDomain];
BOOL isDarkMode = [[dict objectForKey:@"AppleInterfaceStyle"] isEqualToString:@"Dark"];
return isDarkMode;
}
return NO;
}
监听主题变化
可以通过注册 AppleInterfaceThemeChangedNotification
这个通知事件来获知主题的变更
[NSDistributedNotificationCenter.defaultCenter addObserver:self selector:nil name:@"AppleInterfaceThemeChangedNotification" object: nil];
为应用选择一种固定主题
系统默认已经为 NSView 自动适配了暗黑模式
我们可以为单个视图、整个应用指定固定的主题模式,而不跟随系统的主题变化。
- 单个视图
- 为整个应用指定一个主题
在 -applicationDidFinishLaunching:
方法中设置
// 默认主题
[NSApp setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameAqua]];
// 暗黑模式
[NSApp setAppearance:[NSAppearance appearanceNamed:NSAppearanceNameDarkAqua]];