Lo descubrí.
Si se presiona la tecla de flecha derecha solo milisegundos antes se muestra el cuadro de diálogo, no se seleccionará default answer
y el cursor parpadeante se colocará después del texto predeterminado.
Puede realizar esta acción en AppleScript de la siguiente manera:
-- 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 teoría, la solución anterior no debería funcionar. En teoría, la presión de la tecla debe comenzar y completarse antes de que se inicie el comando display dialog
. Pero, este método funciona, por cualquier razón.
Nota: este método no funcionará si inserta key code 124
antes del muy primer cuadro de diálogo de su archivo AppleScript. En este caso, mi código anterior no se comportará como se desea y el texto default answer
permanecerá seleccionado. (Puede parecer engañoso que funcione correctamente si simplemente está ejecutando el código AppleScript desde Script Editor.app o Automator.app, pero no funcionará correctamente si ejecuta el archivo .scpt a través de Fast Scripts, osascript
en Terminal). aplicación, o cualquier otro método.)
Sin embargo, si el display dialog
en cuestión es el segundo, tercer o quincuagésimo diálogo en un archivo AppleScript, mi solución funciona correctamente. No me preguntes por qué no funcionará en el primer diálogo (porque no lo sé).
Por lo tanto, no tiene más remedio que reorganizar los cuadros de diálogo del archivo AppleScript para que el primer cuadro de diálogo no tenga que tener un default answer
.
Una solución alternativa, si su diálogo inicial debe tener un default answer
que no esté seleccionado, es insertar un diálogo que proceda automáticamente después de que haya transcurrido un breve período de tiempo. Este cuadro de diálogo debe insertarse inmediatamente antes del bloque indicador anterior. No es una solución elegante, pero aquí hay un código que funcionará:
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.
Siempre y cuando no preceda al diálogo inicial de un script, personalmente he encontrado que mi método es confiable; funciona el 100% del tiempo en mi computadora.