Comment "exiger une réponse" dans une boîte de dialogue en AppleScript?

3

Si on insère un "Demander un texte "action dans leur flux de travail dans Automator, ils se verront proposer l'option de "Demander une réponse" de l'utilisateur:

enter image description here

Si l'utilisateur ne répond pas, il ne peut pas appuyer sur le bouton "OK". L'ordinateur émettra un bip sonore si le bouton "OK" est enfoncé alors que le champ de réponse est vide

Y at-il un moyen de reproduire cette comportement exact dans AppleScript?

rubik's sphere
la source

Réponses:

2

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

S'il vous plaît laissez-moi savoir si cela fonctionne pour vous.


Deuxième version qui dit à l'utilisateur quelle est l'erreur:

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
oa-
la source
C'est très proche. La seule différence est que je peux appuyer sur le bouton "OK" de votre version. le dialogue est actualisé si j'appuie sur "OK". N’y at-il aucun moyen de désactiver un bouton dans AppleScript (comme le "Demander un texte" action désactive "OK" lorsque le champ est vide)?
rubik's sphere
Il est impossible de désactiver un bouton dans une boîte de dialogue créée avec AppleScript. Vous pouvez accomplir cela avec Swift, cependant.
oa-
Je vous remercie. Vous pouvez afficher un message supplémentaire en utilisant "display alert" pour informer votre utilisateur qu'une réponse est requise.
oa-
1
Bonne idée. De cette façon, l'utilisateur comprend ce qui était à l'origine de l'actualisation.
rubik's sphere
Voir mon deuxième ci-dessus.
oa-