如何使用objective-c创建数字电子表格?
我正在编写一个Cocoa应用程序,我想使用脚本桥从我的应用程序生成一个数字电子表格。我已经生成了Numbers.h文件,并按照中的说明链接了ScriptingBridge.framework。下面是我用来创建数字文档并保存它的代码如何使用objective-c创建数字电子表格?,objective-c,applescript,scripting-bridge,apple-numbers,Objective C,Applescript,Scripting Bridge,Apple Numbers,我正在编写一个Cocoa应用程序,我想使用脚本桥从我的应用程序生成一个数字电子表格。我已经生成了Numbers.h文件,并按照中的说明链接了ScriptingBridge.framework。下面是我用来创建数字文档并保存它的代码 NSString *path = @"/Users/username/Desktop/Test.numbers"; NumbersApplication *numbers = [SBApplication applicationWithBundleIdentifie
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]];
代码编译并运行,当我尝试saveAs:in:方法时,会出现以下错误:
-[SBProxyByClass saveAs:in:::]:尚未将对象添加到容器中;无法识别选择器[self=0x2005912e0]
除了将文档添加到[numbers documents]数组之外,我还需要做其他事情吗
我愿意使用AppleScript,但如果可以的话,我更愿意使用脚本桥;两件黑色艺术品一件的价钱。我建议首先尝试在AppleScript中执行此操作,以便缩小问题的范围 如果它也打断了AS,那么要么是命令的措辞错误,要么是数字有问题。由于大多数应用程序脚本编写人员都使用AppleScript,如果您能够提供他们能够识别的代码,您会发现获得帮助会更容易 如果有效,那么您将命令翻译为ObjC是不正确的,或者SB中存在问题。在AS中有一个工作示例将为找出哪里出了问题提供一个起点
您还可以研究,它提供了一个比SB更可靠、更不混乱的替代方案。它的ASTranslate工具可以轻松地将命令转换为ObjC语法。Numbers还不支持通过Applescript创建文档。您必须使用GUI脚本。新版本的数字预计将于2011年1月6日发布,并且(希望)将修复其严重受限的Applescript支持