Программная смена macOS Mojave Accent Color - PullRequest
0 голосов
/ 08 октября 2018

Я пишу приложение, которое позволяет пользователю устанавливать цвет акцента в MacOS Mojave.

Моя первая попытка была использовать AppleScript.Но я понял, что API еще не обновлен:

enter image description here

Подчеркнутый API работает, но имеет только 2 варианта цвета, в то время как новыйОС имеет 8.

Мне интересно, есть ли обходной путь.Язык не ограничен, пока он работает.Спасибо.

1 Ответ

0 голосов
/ 08 октября 2018

Вот полное решение AppleScript, которое позволяет пользователю выбирать светлый или темный режим, выделять цвета и цвета акцента.Если пользователь выбирает «Другой» в опциях цвета подсветки, сценарий может выдать ошибку, потому что я не определил никаких действий для этой опции (вычисление этой части может быть хорошим процессом для вас, чтобы выучить и разобраться самостоятельно)

property appearanceMode : {"Light", "Dark"}
property accentColors : {"Blue", "Purple", "Pink", "Red", "Orange", "Yellow", "Green", "Graphite"}
property highlightColors : {"Blue", "Purple", "Pink", "Red", "Orange", "Yellow", "Green", "Graphite", "Other"}

set chosenAppearanceMode to (choose from list appearanceMode ¬
    with title "Please Choose Your Accent Color" with prompt ¬
    "Please Choose Your Accent Color" OK button name ¬
    "OK" cancel button name "CANCEL") as string

set chosenAccentColor to (choose from list accentColors ¬
    with title ¬
    "Please Choose Your Accent Color" with prompt ¬
    "Please Choose Your Accent Color" OK button name ¬
    "OK" cancel button name "CANCEL") as string

set chosenHighlightColor to (choose from list highlightColors ¬
    with title ¬
    "Please Choose Your Highlight Color" with prompt ¬
    "Please Choose Your Highlight Color" OK button name ¬
    "OK" cancel button name "CANCEL") as string

tell application "System Preferences"
    reveal anchor "Main" of pane id "com.apple.preference.general"
end tell

tell application "System Events"
    repeat until exists of checkbox chosenAppearanceMode of window "General" of application process "System Preferences"
        delay 0.1
    end repeat
    -- Appearance
    click checkbox chosenAppearanceMode of window "General" of application process "System Preferences"
    -- Accent Color
    click checkbox chosenAccentColor of window "General" of application process "System Preferences"
    -- Dropdown Menu For Highlight Color
    click pop up button 1 of window "General" of application process "System Preferences"
    -- Highlight Color
    click menu item chosenHighlightColor of menu 1 of pop up button 1 of window "General" of application process "System Preferences"
end tell

tell application "System Preferences" to quit
...