Si lon insère une action « Demander du texte » dans son flux de travail dans Automator, on lui présentera loption « Exiger une réponse » de lutilisateur:
Si lutilisateur ne fournit pas de réponse, il ne peut pas appuyer sur le bouton « OK ». Lordinateur émettra un bip à lutilisateur si le bouton « OK » est enfoncé alors que le champ de réponse est vide.
Existe-t-il un moyen de reproduire ce comportement exact dans AppleScript?
Réponse
Oui, cela peut être accompli comme ceci:
repeat set myAnswer to the text returned of (display dialog "Your question goes here." default answer "") if myAnswer is "" then beep else exit repeat end if end repeat
Veuillez me faire savoir si cela fonctionne pour vous.
Deuxième version qui indique à lutilisateur quelle est lerreur:
repeat set myAnswer to the text returned of (display dialog "Your question goes here." default answer "") if myAnswer is "" then beep display alert "Please enter your answer to continue." else exit repeat end if end repeat
Commentaires
- Il ' est très proche. La seule différence est que je peux appuyer sur le bouton " OK " dans votre version; la boîte de dialogue est actualisée si jappuie sur " OK ". Il ny a aucun moyen de désactiver réellement un bouton dans AppleScript (comme laction " Demander du texte " désactive " OK " lorsque le champ est vide)?
- It ' nest pas possible de désactiver un bouton dans une boîte de dialogue créée avec AppleScript. Vous pouvez cependant accomplir cela avec Swift.
- Merci. Vous pouvez afficher un message supplémentaire en utilisant " afficher lalerte " pour informer votre utilisateur quune réponse est requise.
- Excellente idée. De cette façon, lutilisateur comprend ce qui est responsable de lactualisation.
- Voir mon deuxième ci-dessus.