L'applicazione creata con Script Editor ignora l'elemento selezionato nel menu a comparsa "indica l'applicazione corrente"

2

Considera il seguente programma AppleScript:

tell the application "TextEdit" to make new document

Ho salvato questo script come applicazione e l'ho eseguito correttamente facendo doppio clic sull'icona dell'applicazione.

Ho quindi semplificato lo script impostando il menu a comparsa "tell current application" su "TextEdit" e sostituendo il programma con la seguente riga:

make new document

Hosalvatoloscriptel'hoeseguitodaScriptEditor.Tuttohafunzionatobene.Hoquindieseguitol'applicazionefacendodoppioclicsull'iconadell'applicazione,maoraèapparsoilseguentemessaggiodierrore:

Can'tmakeclassdocument
Can'tmakeclassdocument.(-2710)

Qual è la ragione di questo comportamento?

    
posta Evan Aad 17.04.2017 - 08:21
fonte

1 risposta

2

Non puoi creare un'applicazione AppleScript che contenga solo la singola riga di codice make new document in quanto non verrà eseguita nello stesso contesto in Script Editor dopo aver effettuato una selezione dal menu dell'applicazione "tell".

Come applicazione AppleScript devi dire esplicitamente l'applicazione appropriata a make new document .

Esempio: tell application TextEdit to make new document

Se codi solo make new document e lo salvi come, ad es. Code Test.app poi make new document viene eseguito come tell current application to make new document o più letteralmente in questo caso, tell application "Code Test" to make new document e Code Test.app non ha la capacità di creare un nuovo documento e quindi errori.

Mentre in Script Editor, il menu dell'applicazione "tell" è una comoda scorciatoia per evitare di digitare completamente tell application ... ed è solo per testare il codice. Non è tradotto nel codice letterale che devi essere completamente digitato in modo da essere pienamente funzionale nel contesto appropriato per salvare come applicazione (o script per quella materia).

    
risposta data 17.04.2017 - 08:53
fonte

Leggi altre domande sui tag