我正在尝试使用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,但是嘿,这太简单了。 ;)
答案 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。