Je l'ai compris.
Si on appuie sur la flèche droite juste millisecondes avant la boîte de dialogue est affichée, puis le default answer
ne sera pas sélectionné et le curseur clignotant sera placé après le texte par défaut.
Vous pouvez effectuer cette action dans AppleScript comme suit:
-- Unselect the “default answer” in an input dialog:
tell application "System Events"
key code 124 -- right arrow key
end tell
display dialog "Enter a keyword:" default answer "I do not want this text to be highlighted. "
En théorie, la solution ci-dessus ne devrait pas fonctionner. En théorie, la touche doit commencer et se terminer avant le display dialog
la commande initie. Mais, cette méthode fonctionne, pour une raison quelconque.
Remarque: cette méthode ne fonctionnera pas si vous insérez key code 124
avant le très premier dialogue de votre fichier AppleScript. Dans ce cas, mon code ci-dessus ne se comportera pas comme souhaité et le default answer
le texte restera sélectionné. (Il peut sembler erroné de fonctionner correctement si vous exécutez simplement le code AppleScript à partir de Script Editor.app ou Automator.app, mais cela ne fonctionnera pas correctement si vous exécutez le fichier .scpt via Fast Scripts, osascript
dans Terminal.app, ou toute autre méthode.)
Cependant, si le display dialog
Il s’agit du deuxième, troisième ou cinquantième dialogue d’un fichier AppleScript, ma solution fonctionne correctement. Ne me demandez pas pourquoi cela ne fonctionnera pas lors du premier dialogue (car je ne sais pas).
Vous n'avez donc pas d'autre choix que de réorganiser les boîtes de dialogue du fichier AppleScript afin que la première boîte de dialogue n'ait pas besoin de default answer
.
Une solution de contournement, si votre dialogue initial doit avoir un default answer
qui est désélectionné, est d'insérer un dialogue qui procède automatiquement après un court laps de temps. Cette boîte de dialogue doit être insérée immédiatement avant le bloc tell ci-dessus. Ce n'est pas une solution élégante, mais voici un code qui fonctionnera:
display alert "Please wait..." message "..." buttons ("") giving up after 1
-- I think that "1" is the minimum for "giving up after." I tried "0.5" and the dialog completely stalled.
Tant qu’elle ne précède pas le dialogue initial d’un script, j’ai personnellement trouvé ma méthode fiable; cela fonctionne 100% du temps sur mon ordinateur.