2016-12-03 2 views
1

Я пытаюсь найти способ изменить режим от светлого до темного в OS Sierra. У меня есть это, чтобы изменить настройки:Dark Mode macOS Sierra

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

И это сказать OS, чтобы поднять на изменения:

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

Однако, только изменения док, а не уведомления и строка меню. Спасибо за любую помощь, которую вы можете предоставить.

Редактировать: Если у кого есть список ключей, которые подключаются к this function, это было бы полезно. Кажется, он не найден в яблочных документах.

ответ

1

Я нашел немного хакерский способ добиться этого. Используя applescript, довольно легко (и безопасно) изменить тему.

Script ниже:

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

компиляции сценария, добавьте его в xcodeproject и сделать немного больше исследований, о том, как запустить AppleScripts внутри Objective C.

Смежные вопросы