Cocoa-Applescript NSOpenPanel?

时间:2011-11-14 17:29:15

标签: cocoa applescript automator nsopenpanel

如何在Cocoa-Applescript中执行NSOpenPanel?有没有好的教程?我熟悉Applescript,但不是Cocoa部分。 NSOpenPanel需要nib吗?我正在做一个Automator动作。 See my previous question

1 个答案:

答案 0 :(得分:1)

Shane Stanley的PDF书AppleScriptObjC Explored是获得AppleScriptObjC教程的版本 - 几乎所有来自Apple的示例都在现有的ObjC文档中,需要进行转换。

您可以在动作界面中使用Automator路径弹出按钮,但基本的打开面板类似于以下内容(它不需要自己的笔尖):

set defaultDirectory to POSIX path of (path to desktop) -- a place to start

tell current application's NSOpenPanel's openPanel()
    setFloatingPanel_(true)
    setTitle_("Panel Test")
    setPrompt_("Choose") -- the button name
    setMessage_("Choose some stuff:")
    setDirectoryURL_(current application's NSURL's URLWithString_(defaultDirectory))

    setCanChooseFiles_(true)
    setCanChooseDirectories_(true)
    setShowsHiddenFiles_(false)
    setTreatsFilePackagesAsDirectories_(false)
    setAllowsMultipleSelection_(true)

    set theResult to it's runModal() as integer -- show the panel
    if theResult is current application's NSFileHandlingPanelCancelButton then quit -- cancel button
    set theFiles to URLs() as list --> a list of NSURLs
end tell

请注意,如果使用AppleScript编辑器,则无法直接从编辑器运行AppleScriptObjC代码,则需要在Cocoa-AppleScript小程序中运行它。有一个ASObjC Runner后台应用程序(也是Stanley先生)可以在编辑器中使用。