L'application créée avec Script Editor ignore l'élément sélectionné dans le menu contextuel "Indiquer l'application en cours".

2

Considérez le programme AppleScript suivant:

tell the application "TextEdit" to make new document

J'ai enregistré ce script en tant qu'application et je l'ai exécuté avec succès en double-cliquant sur l'icône de l'application.

J'ai ensuite simplifié le script en réglant le menu contextuel "Indiquer l'application en cours" sur "TextEdit" et en remplaçant le programme par la ligne suivante:

make new document

Programme AppleScript simplifié

J'ai sauvegardé le script et l'ai exécuté à partir de Script Editor. Tout a bien fonctionné. J'ai ensuite exécuté l'application en double-cliquant sur l'icône de l'application, mais le message d'erreur suivant s'affiche:

Impossible de créer un document de classe
Impossible de créer un document de classe. (-2710)

Impossible de créer un message d'erreur de document de classe

Quelle est la raison de ce comportement?

Evan Aad
la source

Réponses:

1

Vous ne pouvez pas créer une application AppleScript ne contenant qu'une seule ligne de code make new documentcar elle ne s'exécutera pas dans le même contexte que dans Script Editor après avoir effectué une sélection dans le menu de l'application "tell".

En tant qu'application AppleScript, vous devez explicitement indiquer à l'application appropriée make new document.

Exemple: tell application TextEdit to make new document

Si vous ne codez que make new documentet enregistrez-le sous, par exemple, Code Test.appil make new documents'exécutera comme tell current application to make new documentou plus littéralement dans ce cas, tell application "Code Test" to make new documentet il Code Test.applui sera impossible de créer un nouveau document, ce qui entraînera des erreurs.

Dans l’éditeur de script, le menu de l’application "tell" est un raccourci pratique permettant d’éviter de taper complètement tell application ...et sert uniquement à tester le code. Il n'est pas traduit en code littéral que vous devez saisir entièrement pour être pleinement fonctionnel dans le contexte approprié pour pouvoir être enregistré en tant qu'application (ou script pour cette question).

utilisateur3439894
la source
Merci. Je trouve que c'est un mauvais choix de conception d'interface graphique. À mon avis, le comportement aurait dû être répercuté sur l'application.
Evan Aad
1
@ Evan Aad, je suis d'accord avec Script Editor, qui n'est pas bien conçu et manque de nombreuses fonctionnalités présentes dans d'autres IDE de programmation. Cependant, le Guide du langage AppleScript jette les bases de la rédaction correcte du code, quel que soit l'éditeur utilisé.
user3439894
Quels autres IDE sont disponibles pour AppleScript? Y a-t-il des personnes que vous recommanderiez?
Evan Aad