接受文件:在目标位置承诺的文件名打开Finder窗口

5

我有一个NSView用于接受来自所有来源(本地和远程)的文件。我使用NSFilesPromisePboardType来接受从浏览器拖动的图像等远程文件。以下是我用于将拖放的图像复制到我的文件夹中的代码:

- (BOOL)performDragOperation:(id <NSDraggingInfo>)sender
{
    NSPasteboard * pboard = [sender draggingPasteboard];
    NSDragOperation sourceDragMask = [sender draggingSourceOperationMask];

    if ([[pboard types] containsObject:NSFilesPromisePboardType])
    {
        [sender namesOfPromisedFilesDroppedAtDestination:_fileStorageFolder];
        return YES;
    }

    return NO;
}

我注意到了两个问题:

  1. 在调试控制台中打印“在粘贴板上查找HFSPromises,但没有找到。”警告。
  2. Finder会打开一个新窗口来显示并突出显示新下载的文件。

接收来自浏览器的文件的正确方法是什么,可以避免任何警告和Finder窗口的弹出?


我忘了提到我正在运行OSX 10.7.5 Lion。 - UJey
你能在这里粘贴更多的代码吗? - Hussain Shabbir
@hussain Shabbir:我已经更新了我的问题中的源代码。这是一个简单的performDragOperation方法。我只是尝试接受“承诺的文件”。 - UJey
让我们先确认一下这个Finder问题。有人看到相同的行为吗? - UJey
有人吗?这似乎是一个常见的情况。我相信有人也遇到了同样的困难... - UJey
显示剩余3条评论
1个回答

2

回答自己的问题。 我的代码没有问题。在最新版本的Google Chrome中,如果您从浏览器拖放文件到计算机上的任何位置,则会打开“Finder”窗口。

我找到了Google Chrome的错误报告,测试了Opera和Safari - 一切正常。

对不起打扰了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接