如何在OS X下使用Applescript调用Cocoa方法

5

在之前的OS X版本(10.6以前),可以通过Applescript(“Applescript Studio”)中的“调用方法”命令来调用Cocoa方法。例如:

set theURL to "http://www.apple.com" set URLWithString to (call method "stringByAddingPercentEscapesUsingEncoding:" of theURL with parameter 30)

然而,在“Applescript Editor”(10.6)中的脚本解释器不理解“调用方法”的命令。- 是否有与“Applescript Editor”(10.6)等效的方法?


如果我没记错,问题在于AppleScript Studio和AppleScript Editor之间的差异;前者应该支持在任何(最近的?)OS X版本中调用方法,而后者则不支持。 - Antal Spector-Zabusky
你好Antal S-Z!这正是我的印象。但我认为有可能用另一种方式来桥接Applescript和Cocoa。 - Nico
2个回答

3
您可以在Applescript中使用“call method”。苹果公司将该功能赋予了Automator,并且我们可以通过使用“Automator Runner”应用程序从Applescript访问该功能。最近我向某人展示了这一点。请参见我的帖子#4这里
因此,为了回答您的问题,请将您的“call method”代码放在tell application“Automator Runner” tell块内部。

我不确定这什么时候停止工作的,但在Mac OS X 10.9.1上告诉Automator Runner“调用方法”会导致AppleScript编译错误。我认为目前没有任何方法可以“调用方法”,除非安装一个可以接收该命令的辅助AppleScriptObjC应用程序。 - Michael Tsai

1
AppleScript Studio 我认为是在 Xcode 而不是 AppleScript Editor 中完成的。在 AppleScript Editor 中编写的代码只能保存为 脚本 (scripts),且语言仅限于纯粹的 AppleScript

如果您正在 10.6 的 Xcode 中进行此操作,那么 AppleScript Studio 已经不存在了,现在是 AppleScript-Obj-C

我不知道确切的答案,但是……

如果你在 AppleScript-Obj-C 中使用 - (void)makeKeyAndOrderFront:(id)sender,如果我在 Xcode 中将一个属性与窗口链接起来,我可以这样做:myWindowProperty's makeKeyAndOrderFront_(sender)

我希望这至少有点帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接