2

我有一个应用程序,它允许我将项目从我的网络浏览器拖到应用程序停靠图标。

当我从网络上拖动图像并使用 [pBoardItem dataForType:NSPasteboardTypePNG] 获取原始数据时;我得到了我需要的原始图像数据,但我还需要知道图像形式的位置(即http://www.somedomain.com/somedir/someimage.png)或者如果它是本地的(/用户/somedude/photos/myphoto.png)。

如何获取路径位置信息?

提前致谢。

[编辑** 删除了我在此处对 stringForType 所做的错误评论]

4

1 回答 1

3

粘贴板上没有任何东西不是它的所有者(复制到它的应用程序)放在那里的。

在粘贴板上寻找NSFilenamesPboardType和/或NSURLPboardType

如果它们不存在,则仅复制了图像,没有路径或 URL。这是完全可能且有效的,就像从预览或图像编辑器复制图像的一部分一样,应用程序也完全有可能根本不将路径或 URL 放在粘贴板上,所以不要指望图像必然带有路径或 URL。

当我使用 stringForType: 函数时,我只得到 public.png (名称粘贴板暂时给它)。

呃?您是说当您要求某种类型的字符串时,您得到的字符串是@"public.png"

如果是这样,那与粘贴板上的图像无关;@"public.png"将是粘贴板的内容。也许您刚刚将“public.png”复制到剪贴板?

如果您的意思是您检索了类型的字符串@"public.png",(1)不是临时名称,它是 PNG 的UTI,(2)您应该使用命名常量,例如kUTTypePNG,而不是硬编码文字, (3) 该类型的值不应该是字符串。我不希望从stringForType:该类型的消息中获得任何有用的信息。

于 2011-09-25T16:40:40.207 回答