我正在编写一个 Cocoa 应用程序,我想使用 Scripting Bridge 从我的应用程序生成一个 Numbers 电子表格。我生成了 Numbers.h 文件并按照Apple 文档中的说明链接了 ScriptingBridge.framework 。下面是我用来尝试简单地创建 Numbers 文档并保存它的代码。
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 文档] 数组之外,我还需要做些什么吗?
我愿意使用 AppleScript,但如果可以的话,我更喜欢使用 Scripting Bridge。