Il seguente esempio codice AppleScript funziona per me in macOS High Sierra :
Nota: modifica "Calendar"
in set appName to "Calendar"
nell'app di destinazione appropriata.
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
Le preferenze di sistema non devono essere visibili affinché funzioni e perché non ci sia activate
comando nell'esempio AppleScript codice . Inoltre, se Preferenze di sistema è già aperto, viene prima chiuso prima che venga elaborato il resto del codice . Questo viene fatto per un paio di motivi, il primo dei quali è già stato affermato e in secondo luogo vedere gli UI degli eventi elaborati è una distrazione visiva e può essere fastidioso.
Nota anche che il valore dei delay
comandi potrebbe dover essere regolato per il tuo sistema, o altri delay
comandi potrebbe o non potrebbe essere necessario. Regola valori di e o aggiungi / rimuovi i delay
comandi come appropriato.
Per una versione che agisce su più applicazioni e tutte le applicazioni in Centro notifiche in Preferenze di sistema , vedi la mia risposta a: Rimuovi più icone di badge di app con uno script?
Nota: il esempio codice AppleScript è proprio questo e non impiega alcuna gestione degli errori e si intende solo per mostrare uno dei molti modi in cui eseguire un compito. L'onere è sempre sull'utente di aggiungere / utilizzare la gestione degli errori appropriata come necessario / voluto.