L'appeal nella notifica è ovviamente tipicamente estetico, ma se le sue funzionalità fossero ciò di cui avevi bisogno, allora sei fortunato perché puoi usare la finestra di visualizzazione per act letteralmente l'esatto stesso modo:
set userCanceled to false
try
set dialogResult to display dialog ¬
"How are you feeling?" with title ¬
"Hello" buttons {"Close", "Reply"} ¬
default button "Reply" cancel button ¬
"Close" giving up after 8 ¬
default answer ("")
on error number -128
set userCanceled to true
end try
log "User is feeling " & text returned of dialogResult
Il "rinunciare dopo 8" significa che se non accade nulla entro quel tempo, la scatola andrà via.
Potresti anche teoricamente renderlo più simile a una notifica facendo apparire la casella di testo solo dopo che l'utente ha premuto "Rispondi". Puoi farlo facendo una copia di questa finestra di dialogo senza la parte "risposta predefinita", e rimuovendo la parte "rinunciare dopo 8" dall'originale, quindi inserendo la copia prima dell'originale e inserendo questa frase nell'originale:
if button returned of dialogResult is "Reply" then
Un'altra cosa che potresti fare con la finestra di dialogo, che sono abbastanza sicuro che non puoi nemmeno fare con la notifica di imessage, è controllarla con la tastiera. Quando viene visualizzata una finestra di dialogo con una casella di testo, puoi iniziare a digitare immediatamente, premere Invio per inviare e premere Esc in qualsiasi momento.
Se si sta usando una notifica, sfortunatamente la sezione di notifica della documentazione di applescript suggerisce totalmente che non è possibile (con applescript). In base ad esso, non puoi nemmeno restituire uno di due valori e tanto meno lasciare che l'utente inserisca una stringa.
] 1
Se potresti ottenere 2 risposte da esso, id suggerisce di avere un pulsante di annullamento del pulsante e un altro pulsante che ottiene il testo dagli Appunti. Forse non l'approccio più elegante, ma avrebbe fatto il lavoro.