3 votes

Comment créer une feuille de calcul Numbers à l'aide d'objective-c ?

J'écris une application Cocoa et j'aimerais générer une feuille de calcul Numbers à partir de mon application en utilisant Scripting Bridge. J'ai généré le fichier Numbers.h et lié le fichier ScriptingBridge.framework en suivant les instructions du document Documentation d'Apple . Voici le code que j'utilise pour essayer de créer simplement un document Numbers et de l'enregistrer.

NSString *path = @"/Users/username/Desktop/Test.numbers";

NumbersApplication *numbers = [SBApplication applicationWithBundleIdentifier:@"com.apple.iWork.Numbers"];

[numbers activate];

NumbersDocument *document = [[[numbers classForScriptingClass:@"document"] alloc] initWithProperties:[NSDictionary dictionaryWithObjectsAndKeys:project.title, @"name", nil]];

[[numbers documents] addObject:document];

[document saveAs:nil in:[NSURL URLWithString:path]];

Le code se compile et s'exécute, mais lorsque j'essaie la méthode saveAs:in :, j'obtiens l'erreur suivante :

-[SBProxyByClass saveAs:in :]: l'objet n'a pas encore été ajouté à un conteneur ; le sélecteur n'est pas reconnu [self = 0x2005912e0].

Dois-je faire quelque chose d'autre que d'ajouter le document au tableau [numbers documents] ?

Je suis ouvert à l'utilisation d'AppleScript, mais je préférerais utiliser le Scripting Bridge si possible.

1voto

Vasili Syrakis Points 4395

Ehh, Numbers scripting with SB ; deux arts noirs pour le prix d'un. Je suggérerais d'essayer d'abord de le faire en AppleScript, afin de circonscrire un peu le problème.

Si elle s'interrompt également dans AS, soit vous avez mal formulé les commandes, soit il y a un problème dans Numbers. Étant donné que la plupart des scripteurs d'applications utilisent AppleScript, vous obtiendrez plus facilement de l'aide si vous pouvez présenter un code qu'ils reconnaîtront.

Si cela fonctionne, alors soit votre traduction des commandes en ObjC est incorrecte, soit il y a un problème dans SB. Le fait de disposer d'un exemple fonctionnel dans AS constituera un point de départ pour déterminer où les choses se passent mal.

Vous pouvez également consulter objc-appscript qui offre une alternative plus fiable et moins obscure au SB. Son outil ASTranslate facilite la traduction des commandes AS en syntaxe ObjC.

0voto

Clark Points 654

Numbers ne prend pas encore en charge la création de documents via Applescript. Vous devez utiliser un script GUI. La nouvelle version de Numbers est censée sortir le 6 janvier 2011 et (espérons-le) corrigera sa prise en charge très limitée d'Applescript.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X