暗模式macOS Sierra

时间:2016-12-03 16:58:26

标签: objective-c macos

我试图找到一种方法在OS Sierra中将模式从亮到暗改变。我有这个来改变设置:

CFPreferencesSetValue((CFStringRef)@"AppleInterfaceStyle", @"Dark", kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesCurrentHost);

这是告诉操作系统了解变化:

dispatch_async(dispatch_get_main_queue(),
               ^{CFNotificationCenterPostNotification(CFNotificationCenterGetDistributedCenter(), (CFStringRef)@"AppleInterfaceThemeChangedNotification", NULL, NULL, true);}
               );

但是,只有底座更改,而不是通知和菜单栏。感谢您提供的任何帮助。

编辑:如果有人有一个插入this function的密钥列表,那将会有所帮助。似乎无法在苹果文档中找到它。

1 个答案:

答案 0 :(得分:2)

我找到了一种实现这一目标的黑客方式。使用applescript,改变主题非常容易(也很安全)。

下面的脚本:

tell application "System Events"
    tell appearance preferences to set dark mode to not dark mode
end tell

编译脚本,将其添加到xcodeproject并对如何在目标c中运行applescripts进行更多研究。