2010-06-11 7 views
3

J'écris une application Cocoa et je voudrais 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 ScriptingBridge.framework par les directions dans Apple's Documentation. Ci-dessous le code que j'utilise pour essayer de créer simplement un document Numbers et de l'enregistrer.Comment créer une feuille de calcul Numbers à l'aide de l'objet-c?

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 compile et exécute et lorsque je tente les saveAs: dans: méthode que je reçois l'erreur suivante:

- [SBProxyByClass saveAs: en:]: objet n'a pas été ajouté à un récipient encore ; sélecteur non reconnu [self = 0x2005912e0]

Y a-t-il autre chose que je dois faire en plus d'ajouter le document au tableau [numbers documents]?

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

Répondre

1

Ehh, écriture de nombres avec SB; deux arts noirs pour le prix d'un. Je suggère d'essayer de le faire dans AppleScript d'abord, afin de réduire un peu le problème.

Si cela casse aussi dans AS, alors vous avez mal formulé les commandes ou il y a un problème dans Numbers. Comme la plupart des scripteurs d'applications utilisent AppleScript, il est plus facile d'obtenir de l'aide si vous pouvez présenter du code qu'ils reconnaîtront.

Si cela fonctionne, alors votre traduction des commandes vers ObjC est incorrecte ou il y a un problème dans SB. Avoir un exemple de travail dans AS fournira un point de départ pour déterminer où les choses vont mal.

Vous pouvez également regarder dans objc-appscript, qui fournit une alternative plus fiable et moins obfusquée à SB. Son outil ASTranslate facilite la traduction des commandes AS en syntaxe ObjC.

0

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) va corriger son support Applescript très limité.