Aller au contenu

Swift applescriptable


sigma6
 Share

Messages recommandés

Salut l'équipe

 

J'aimerais pouvoir donner du contrôle applescript/javascript à une de mes applis (codée en swift) histoire de pouvoir facilement la contrôler depuis ical ou n'importe quoi d'autre en fait.

 

J'ai trouvé un début de piste ici: http://www.objc.io/issues/14-mac/scripting-data/

 

Mais c'est pour de l'objective-c et je n'arrive pas à faire pareil avec swift… 

 

J'ai une classe avec plein de méthodes qui font pile poil ce que je cherche à contrôler mais je n'arrive pas à faire le liens entre le .sdef et ma classe… Une idée?

 

Merci!

Lien vers le commentaire
Partager sur d’autres sites

Salut sigma6 ! C'est une bonne question ça :P

 

Est ce que tu as essayé de préfixé ta classe avec le token "@objc" pour dire au compilo que ta classe Swift est aussi une classe Objective-C ? J'ai pas essayé, mais comme l'API s'attend à une classe OC, j'imagine que ça doit être requis.

 

-- Edit

 

Quoi que ta / tes classes qui prennent en charge les messages AS doivent hériter de "FSAppleScriptCommand" normalement, donc le "@objc" doit être implicite.

 

Je vais essayer sur un petit projet vierge voir ce qu'il en est (j'ai fait de l'AS sur des projets OC, mais jamais Swift pour l'instant).

Lien vers le commentaire
Partager sur d’autres sites

Wow t'es trop fort!

 

Bon, j'arrive à y implémenter à mon projet, mais maintenant faut que je pige pourquoi 9 fois sur 10 il me dit que mon dictionnaire est corrompu… Ça semble venir du tag code, mais des fois il me dit que c'est interdit de mettre plus de 4 caractères, mais en même temps dans ton exemple il y en a plus que 4… je pige rien. Les erreurs sont assez incohérentes.

 

Si j'arrive à piger pourquoi il m'embête je poste ça ici.

 

Merci mille fois en tout cas, ça me sort une bonne épine du pied!

Lien vers le commentaire
Partager sur d’autres sites

Avec plaisir :)

 

Pour le tag code, je ne sais pas. J'ai toujours fait comme ça (mais j'ai peut-être eu tord, et si ça passait avant, peut-être qu'Apple a corrigé un truc qui fait que ça passe plus ?).

 

Ou alors un bug dans Xcode 7 beta (si c'est ça que tu utilises)

 

Si tu trouves l'origine du problème, oui poste ça ici !

 

-- Edit

 

En même temps, si tu regarde la Standard Suite (celle par défaut, fournie par Apple), y'a des code > 4 caractères, comme "coremove" par exemple.

Lien vers le commentaire
Partager sur d’autres sites

Ouais, la doc est un peu incompréhensible… Mais je crois que j'ai compris!

 

Dans la standard suite, apple fait ce qu'il veut, parce qu'apple y se la pètent… Ils ont défini leurs codes et ils utilisent ça et tant pis pour toi.

 

Après dans la suite de l'appli tu donnes un code pour la suite, par exemple Abcd, du coup toutes les commandes après doivent faire 8 caractères et commencer par Abcd, par exemple AbcdEfgh… et c'est ça que je faisais faux, je ne reprenais pas le début du code de la suite. C'est malin. Et ça, c'est pas documenté!

 

Une vraie bande de pantoufles chez apple

Lien vers le commentaire
Partager sur d’autres sites

Ah oui d'accord. Et effectivement, dans mes app qui font de l'AS les codes font toujours 8 caractères, avec les 4 premiers caractères étant le code de la suite. J'ai surement dû prendre l'habitude de faire comme ça sans trop me souvenir si c'était nécessaire ou quoi.

 

Merci pour cette trouvaille !
Lien vers le commentaire
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement
 Share

×
×
  • Créer...