Apple Pages - 脚本桥和选择内容

时间:2013-05-16 00:59:34

标签: objective-c macos applescript scripting-bridge

我正在尝试使用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 and <contents> element下尝试了提示 但没有运气......

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

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

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

当然,我可以通过NSAppleScript发送AppleScript,但是嘿,这太简单了。 ;)

2 个答案:

答案 0 :(得分: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"];

答案 1 :(得分:0)

别介意NSAppleScript; AppleScriptObjC自10.6以来一直是标准功能。 ASOC允许您的ObjC代码像常规的Cocoa类和对象一样处理AppleScript脚本对象,AppleScript比Scripting Bridge更容易,更可靠,可以与#34; AppleScriptable&#34;应用。有关详细信息,请参阅this post