如何访问Droplet样式cocoa应用程序中的已删除文件

时间:2010-08-27 09:58:23

标签: objective-c cocoa macos drag-and-drop

我经常使用的所有应用程序都实现了这个“看似简单”的场景,但我无法在自己的Cocoa应用程序中复制它。请考虑以下步骤:

  1. 应用程序未运行
  2. 将文件或选定的文件放到应用程序的图标上。
  3. 该应用运行并对已删除的文件执行一些操作。
  4. 也许是打开它们,也许不是,但事情发生了。
  5. 当我尝试使用谷歌搜索答案时,其中一些甚至在stackoverflow上指向我指向NSApplicationDelegate的应用程序:openFiles:method。关于如何从Apple事件到代理is here的解释。

    使用适当的UTI(****),当应用程序已经运行时,这就像魅力一样。但是,由于我正在尝试创建一个“Droplet”样式的应用程序,我希望它在应用程序尚未运行时也能正常工作。

    在最后一个场景中,不调用应用程序:openFiles:方法。现在我只有一个简单的NSLog()调用,它没有显示(我正在查看Console.app,因为它有点模拟在XCode中构建时删除的文件)。

    有人可以告诉我在哪里看,做什么,要改变什么?

    干杯, 埃里克保

1 个答案:

答案 0 :(得分:3)

这实际上非常简单:应用程序可能未在启动服务中注册。尝试将其安装在“应用程序”文件夹中,看看是否有帮助。