我正在开发一个应用程序,我想在某些时候向iTunes发出信号,播放任何播放列表中的单个曲目。我刚刚开始学习Scripting Bridge,我使用Apple引用的命令行工具创建了一个“iTunes.h”文件,我在我的项目中得到了这个和ScriptingBridge.framework。现在我认为我所要做的就是
iTunesApplication *iTunes = [SBApplication applicationWithBundleIdentifier:@"com.apple.iTunes"];
当我想提示接下来的任何曲目时:
[iTunes playOnce:YES];
iTunes会做出回应,但如果我理解Apple的示例代码,那么YES参数应该强制它只播放一首曲目。实际上,无论是“是”还是“否”都无关紧要:iTunes始终从选定的曲目播放到播放列表的末尾,但可能有很多曲目。我错过了什么吗?由于我只需要发送一个非常简单的Apple Event,有没有比通过整个Scripting Bridge框架更简单的方法呢?
答案 0 :(得分:0)
在Mac OS X 10.6中,Snow Leopard Apple推出了AppleScriptObjC框架,它在AppleScript和Cocoa之间提供了更简单的桥接。没有更丑陋的头文件。
在脚本类中,您可以将AppleScript与类似Objective-C的语法混合使用。 Xcode中有一个AppleScriptObjC模板,但您可以通过添加AppleScriptObjC框架并在main.m中调用来将ASOC添加到现有的Cocoa项目中
[[NSBundle mainBundle] loadAppleScriptObjectiveCScripts];
Apple文档非常差,macosxautomation.com上有一些资源,Shane Stanley也写了一本全面的书。