L'attrait de la notification est évidemment d'ordre esthétique, mais si vous avez besoin de ses fonctionnalités, vous avez de la chance, car vous pouvez utiliser le dialogue d'affichage pour acte littéralement de la même manière :
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
La mention "abandon après 8" signifie que si rien ne se passe dans ce délai, la boîte disparaîtra.
En théorie, vous pourriez aussi faire en sorte que cela ressemble davantage à une notification en faisant en sorte que la zone de texte n'apparaisse qu'après que l'utilisateur ait cliqué sur "Répondre". Pour ce faire, faites une copie de cette boîte de dialogue sans la partie "réponse par défaut" et en supprimant la partie "abandon après 8" de l'original, puis placez la copie avant l'original et placez cette instruction if autour de l'original :
if button returned of dialogResult is "Reply" then
Une autre chose que vous pourriez faire avec la boîte de dialogue, que je suis presque sûr que vous ne pouvez même pas faire avec la notification imessage, est de la contrôler avec le clavier. Lorsqu'une boîte de dialogue avec une zone de texte apparaît, vous pouvez commencer à taper immédiatement, appuyer sur la touche Entrée pour envoyer, et appuyer sur la touche Echap à tout moment.
Si vous voulez utiliser une notification, malheureusement la section notification de la documentation d'applescript suggère totalement que ce n'est pas possible (avec applescript). D'après cette documentation, vous ne pouvez même pas renvoyer l'une des deux valeurs, et encore moins laisser l'utilisateur entrer une chaîne de caractères.
] 1
Si vous pouvez obtenir deux réponses, je suggère d'avoir un bouton d'annulation et un autre qui récupère le texte du presse-papiers. Ce n'est peut-être pas l'approche la plus élégante, mais elle permettrait de faire le travail.