1

我正在尝试将 Apple Pages(来自 iWork)与 Objective-C 的脚本桥一起使用。

这是有效的 AppleScript:

tell application "Pages"
    set name of item 1 of contents of (get selection) to "myLittleTextBox"
end tell

如何使用 Scripting Bridge 在 Objective-C 中实现相同的功能?

我尝试了Cocoa Scripting Bridge 和 <contents> 元素下的提示, 但没有运气...

奇怪的是,读取属性没有问题:

PagesApplication *myPages = [SBApplication applicationWithBundleIdentifier:@"com.apple.iWork.Pages"];
NSLog(@"myPages.selection.properties:%@",myPages.selection.properties);

...但我没有运气设置或访问选择中的对象。

当然,我可以通过发送 AppleScript,NSAppleScript但是嘿,那太容易了。;)

4

2 回答 2

1

好吧,我可以得到财产项目。返回的属性对象是一个数组。

id  selObject = pages.selection.properties;


NSString*  theName = [[selObject objectAtIndex:0]objectForKey:@"name"];
NSLog(@"theName = %@",theName);

并设置它:

 id selObject2 =  pages.selection.get;


[selObject2 setValue:@"myPage"  forKey:@"name"];
于 2013-05-20T17:31:20.707 回答
0

没关系 NSAppleScript;AppleScriptObjC 自 10.6 以来一直是标准功能。ASOC 允许您的 ObjC 代码像处理常规 Cocoa 类和对象一样处理 AppleScript 脚本对象,并且 AppleScript 在与“AppleScriptable”应用程序通信方面比 Scripting Bridge 更容易和更可靠。有关更多信息,请参阅此帖子

于 2013-05-17T17:33:04.367 回答