¿Cómo "requerir una respuesta" en un cuadro de diálogo en AppleScript?

Si uno inserta una acción "Solicitar texto " en su flujo de trabajo en Automator, se le presentará la opción de "Solicitar una respuesta" del usuario:

ingrese la descripción de la imagen aquí

Si el usuario no puede proporcionar una respuesta, el usuario no puede presionar el botón "Aceptar". La computadora emitirá un pitido al usuario si se presiona el botón "Aceptar" mientras el campo de respuesta está vacío.

¿ Hay alguna manera de replicar este comportamiento exacto en AppleScript?

Respuestas (1)

Sí, se puede lograr así:

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

Por favor, avíseme si esto funciona para usted.


Segunda versión que le dice al usuario cuál es el error:

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
Está muy cerca. La única diferencia es que puedo presionar el botón "Aceptar" en su versión; el cuadro de diálogo se actualiza si presiono "OK". ¿No hay forma de deshabilitar realmente un botón en AppleScript (como la acción "Solicitar texto" deshabilita "Aceptar" cuando el campo está vacío)?
No es posible deshabilitar un botón en un cuadro de diálogo creado con AppleScript. Sin embargo, puedes lograr eso con Swift.
Gracias. Puede mostrar un mensaje adicional usando "mostrar alerta" para que su usuario sepa que se requiere una respuesta.
Gran idea. De esa forma, el usuario entiende qué fue lo que provocó la actualización.
Ver mi segundo arriba.