2011-05-08 81 views
0

在AppleScript的,我习惯叫:如何从AppleScript访问Cocoa-AppleScript应用程序中的捆绑文件?

set audio_file to (path to me as string) & "Contents:Resources:Audio:Music.mp3" 
display dialog "Path: " & (quoted form of POSIX path of audio_file) 

我现在有Xcode的可可的AppleScript项目中的代码。它编译得很好,但脚本根本没有运行。该对话框从不显示。

没有(path to me as string)它的工作原理,但没有路径。

+0

我发现这个问题是_path的“我”的一部分,我作为string_。如果我使用_path作为string_它可以工作。现在的子问题是“如果我不能使用_me_,如何自我引用脚本文件夹?“ – 2011-05-08 23:15:33

+0

得到的答复是,在可可的AppleScript应用程序,正确的sintaxis是不是: '(路径把我当成文本)' 但是: '(路径当前应用为文本)' _me_不适合作为自我引用,正确的是_current application_。 希望这可以帮助其他人:) – 2011-05-08 23:41:17

回答

0

得到的答复是,在可可的AppleScript应用程序,正确的sintaxis不:

(path to me as text) 

但是:

(path to current application as text) 

me是不是自我参照有效。正确的是current application

希望这会帮助别人:)

0

“我作为字符串的路径”似乎是正确的,但你可能有2个其他问题。 1)音频文件的路径应该包含“内容”而不是“内容”。 2)在显示对话框中,您不需要“带引号的表单”,因为posix路径是一个字符串,可以添加到您的“Path:”字符串中,而不会出现问题。所以检查这两件事情,看看是否有帮助。

编辑: 如果上述不帮助有一个“可可的方式获得应用程序路径,我不知道AppleScript的objc语法,但你这是怎么会通过可可得到它。方法...

而获得资源的路径直接使用此...

NSString* resourcePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"mp3"]; 
+0

“内容”是写错问题的错误,而且我与你在一起(作为字符串的路径)似乎但是:'显示对话框(作为文本的路径)'在Cocoa-AppleScript中不起作用,问题在于_me_,因为显示对话框(作为文本的主文件夹的路径)'作用 – 2011-05-08 23:26:11

+0

我添加了一些可可代码到我的帖子可能会hel在“编辑”部分下。 – regulus6633 2011-05-09 04:18:14

+0

AFAIK你不能在.applescript脚本中混合Cocoa :( – 2011-05-10 12:52:33

0

对于简单的情况下,虽然,你可以把文件中的Xcode项目的文件树的根级别,然后执行:

set theFilePath to (path to resource "SomeFile.ext") 

在我的情况我然后做:

tell application "Finder" 
     open theFilePath 
    end tell 

,并在其相关的应用程序中打开。

当您分发您的应用程序时,'SomeFile.ext'结束在您的应用程序包的资源文件夹中。

不是100%确定如何为我没有必要,到目前为止,但我想它会是 (path to resource "Audio:SomeFile.mp3")指定的子文件夹?

1

对于资源文件我用:

set fname to POSIX path of (path to resource "filename")