AppleScript appelé depuis Swift oublie des instructions
Bonjour,
j'ai écrit un script AppleScript (qui fonctionne très bien seul) permettant de piloter InDesign. Le script crée une boite de dialogue InDesign, collecte les infos et exécute ses tâches.
Avoir une jolie boite sous InDesign via AppleScript étant un peu galère et surtout pas dynamique je l'ai réalisée dans XCode puis je fais un appel à mon script en lui passant des paramètres :
Code:
1 2 3 4 5 6 7
| import Foundation
let task = NSTask()
task.launchPath = "/usr/bin/osascript"
task.arguments = ["~/Desktop/testscript.scpt"]
task.launch() |
Tout se passe bien, le script est lancé, les paramètres sont passés, le job commence mais certaines instructions sont oubliées, comme les "display dialog" ou "choose file" (et peut-être d'autres…). Ne me demandez pas pourquoi je n'écris pas tout dans Swift : je ne le maîtrise pas !
Il y a t'il des astuces à connaître afin qu'AppleScript exécute toutes ses lignes ? J'ai testé avec ".scpt" et ".app".
pourquoi encapsuler une app Applescript dans un projet Swift ?
Citation:
Envoyé par
hopus
Bonjour,
j'ai écrit un script AppleScript (qui fonctionne très bien seul) permettant de piloter InDesign. Le script crée une boite de dialogue InDesign, collecte les infos et exécute ses tâches.
Avoir une jolie boite sous InDesign via AppleScript étant un peu galère et surtout pas dynamique je l'ai réalisée dans XCode puis je fais un appel à mon script en lui passant des paramètres :
Code:
1 2 3 4 5 6 7
| import Foundation
let task = NSTask()
task.launchPath = "/usr/bin/osascript"
task.arguments = ["~/Desktop/testscript.scpt"]
task.launch() |
Tout se passe bien, le script est lancé, les paramètres sont passés, le job commence mais certaines instructions sont oubliées, comme les "display dialog" ou "choose file" (et peut-être d'autres…). Ne me demandez pas pourquoi je n'écris pas tout dans Swift : je ne le maîtrise pas !
Il y a t'il des astuces à connaître afin qu'AppleScript exécute toutes ses lignes ? J'ai testé avec ".scpt" et ".app".
Bonjour,
Je sais que nous sommes très loin de la date de cette intervention :calim2: et je prie l'auteur de bien vouloir me pardonner mon anachronisme, mais je me demande pourquoi chercher à encapsuler (ce n(est pas le terme approprié compte tenu du caractère POO de Swift :) ) une app dont il est dit qu'elle marche bien comme ça dans une autre écrite en Swift ; y a-t-il une raison particulière ? Laquelle ? Je suis moi-même très intéressé à la capacité de Swift à mixer d'autres langages à une appli Swift, mais il me semble qu'il est possible que cela devienne plus difficile quand ce langage aura la pleine maturité, après la version 4 j'imagine. On voit bien comme il tend à s'affranchir du C, Objective ou non, dès la version 3.