Наступний приклад коду AppleScript працює для мене в macOS High Sierra :
Примітка: Зміна "Calendar"
в set appName to "Calendar"
до відповідного цільовим додатком.
set appName to "Calendar"
if running of application "System Preferences" then
quit application "System Preferences"
delay 1
end if
tell application "System Preferences"
set the current pane to pane id "com.apple.preference.notifications"
delay 1
tell application "System Events"
tell table 1 of scroll area 1 of window 1 of application process "System Preferences"
repeat with i from 2 to (count rows)
if value of static text 1 of group 1 of UI element 1 of row i is appName then
select row i
exit repeat
end if
end repeat
end tell
delay 0.2
click checkbox "Badge app icon" of group 1 of window 1 of application process "System Preferences"
end tell
quit
end tell
Налаштування системи не повинні бути видимими, щоб це працювало, і чому в прикладі коду AppleScript немає activate
команди . Крім того, якщо Налаштування системи вже відкрито, вона спочатку закривається перед тим, як решта коду буде оброблена. Це робиться з декількох причин, перша з яких вже була заявлена, а по-друге, перегляд оброблюваних подій інтерфейсу є візуальним відволіканням і може дратувати.
Також відзначимо , що значення з delay
команд може знадобитися скорегувати для вашої системи, і чи додаткові delay
команди можуть або не можуть бути необхідні. Відрегулюйте значення та / або додайте / видаліть delay
команди, як це доречно.
Щодо версії, яка діє для декількох додатків та / або всіх додатків у Центрі сповіщень у системних налаштуваннях , дивіться мою відповідь на тему : Видалити декілька значків значків програми одним сценарієм?
Примітка . Приклад коду AppleScript - це лише те, що не використовує жодних помилок, і він призначений лише для показу одного з багатьох способів виконання завдання. Користувач завжди зобов’язаний додавати / використовувати відповідне поводження з помилками, якщо потрібно / хотілося.