In base alla documentazione di AppleScript , posso creare una notifica con pulsanti impostandolo per utilizzare gli avvisi anziché i banner nelle preferenze del Centro notifiche. Ma quando salvi un AppleScript come app, avvialo una volta (supponendo che debba avviarsi per dire a macOS che esiste), non compare mai nel pannello delle preferenze.
Quindi, come piano B, ho provato a scrivere l'app in modo che invece di un pulsante, funzioni all'attivazione. Funziona bene. Secondo questa pagina , Mavericks attiva un'applicazione quando fai clic sul suo banner, ma ciò non sembra lavoro più in alta Sierra; qualsiasi passaggio del mouse o clic rende persistente il banner.
Piano C: comando-scheda all'app per attivarlo ed eseguire la subroutine. Ecco la subroutine per attendere che:
on waitForActivate()
set notFrontmost to true
repeat while notFrontmost
tell application "System Events"
set frontApp to name of item 1 of (get processes whose frontmost is true)
if frontApp is "test notifications 2" then set notFrontmost to false
end tell
delay 1
end repeat
end waitForActivate
... che funziona, ma esiste un modo migliore per farlo funzionare rispetto al polling degli eventi di sistema una volta al secondo? Sembra sciatto. Ho pensato di salvarlo come se fosse aperto e di usare un gestore inattivo, ma non mi è chiaro come migliorarlo al più presto.