La aplicación creada con el Editor de secuencias de comandos ignora el elemento seleccionado en el menú emergente "indicar la aplicación actual"

2

Considere el siguiente programa AppleScript:

tell the application "TextEdit" to make new document

Guardé este script como una aplicación y lo ejecuté correctamente haciendo doble clic en el icono de la aplicación.

Luego simplifiqué el script configurando el menú emergente "indicar la aplicación actual" en "TextEdit" y reemplazando el programa con la siguiente línea:

make new document

GuardéelscriptyloejecutédesdedentrodeScriptEditor.Todofuncionóbien.Luegoejecutélaaplicaciónhaciendodoblecliceneliconodelaaplicación,peroahoraaparecióelsiguientemensajedeerror:

  

Nosepuedecrearundocumentodeclase
  Nosepuedehacereldocumentodeclase.(-2710)

¿Cuál es la razón de este comportamiento?

    
pregunta Evan Aad 17.04.2017 - 08:21

1 respuesta

2

No puede crear una aplicación AppleScript que solo contenga la línea única del código make new document ya que no se ejecutará en el mismo contexto que lo hace en el Editor de secuencias de comandos, ya que realizó una selección en el menú de aplicaciones "tell".

Como una aplicación AppleScript, debe indicar explícitamente la aplicación apropiada a make new document .

Ejemplo: tell application TextEdit to make new document

Si solo codifica make new document y lo guarda como, por ejemplo, Code Test.app entonces make new document se ejecuta como tell current application to make new document o más literalmente en este caso, tell application "Code Test" to make new document y Code Test.app carece de la capacidad de crear un nuevo documento y, por lo tanto, de errores.

Mientras se encuentra en el Editor de secuencias de comandos, el menú de la aplicación "tell" es un atajo útil para evitar escribir completamente tell application ... y es solo para el código de prueba. No se traduce al código literal que debe escribir en su totalidad para que sea completamente funcional dentro del contexto adecuado para guardar como una aplicación (o secuencia de comandos).

    
respondido por el user3439894 17.04.2017 - 08:53

Lea otras preguntas en las etiquetas