从Safari拖动图像并将其拖放到停靠栏图标在雪豹中不起作用?

时间:2009-09-02 12:42:45

标签: objective-c cocoa drag-and-drop osx-snow-leopard

我有一个应用程序:

您可以将图片文件拖放到应用的停靠栏图标上,然后将图片上传到免费的图片托管服务商。在10.5中,您可以直接从Safari(和任何其他浏览器)拖出图像并将其拖放到扩展坞上。 (该应用程序从浏览器放入的临时文件夹中打开图像并将其上传到网络。)

现在在10.6中,相同的应用程序将不会接受从safari(任何其他brwosers)窗口直接放入停靠栏图标的图像。浏览器似乎将internet-URL“导出”为映像(http://somedomain.com/the_image.png),而不是导出缓存中图像文件的文件名的10.5行为。从finder中删除的本地文件被打开并完美处理。

对我来说,后果是:我必须实现一项服务,允许将URL放到我的停靠栏图标上。然后决定是删除本地文件名还是远程URL。导致样板代码只是为了决定是否应该用[NSData dataWithContentsOfFile]或[NSData dataWithContentsOfURL]打开图像(遗憾的是你无法从本地文件名创建NSURL)

有没有一种正确的方法来处理这个并摆脱样板? (将'file://'添加到文件名并作为URL打开不起作用。)

1 个答案:

答案 0 :(得分:4)

  

(遗憾的是,您无法从本地文件名创建NSURL)

是的,你可以。请查看文档中的+[NSURL fileURLWithPath:]