5

我的 Mac 应用程序应该允许拖放 kPasteboardTypeFileURLPromise 以从粘贴板获取文件承诺。

据我了解,每个 NSPasteboardItem 的可用类型都应该有 kPasteboardTypeFileURLPromise 。

与由拖动目标处理的 NSURL 不同,kPasteboardTypeFileURLPromise 由拖动源写入到由拖动目标设置的目标位置。

但是,当源未能履行承诺时,似乎无法将错误及其用户信息传递给目标以进行恢复(例如 NSRecoveryAttempterErrorKey 等)。

拖动 kPasteboardTypeFileURLPromise 时处理错误的最佳做法是什么?它们应该由拖动源处理吗?

与目标处理错误的拖动 NSURL 相比,它可能会导致一些不一致。

4

1 回答 1

1

如果您需要将文件复制到剪贴板,请使用:

NSPasteboard *pasteBoard = [NSPasteboard generalPasteboard];
[pasteBoard declareTypes:[NSArray arrayWithObjects:NSStringPboardType, NSFilenamesPboardType, nil] owner:nil];
[pasteBoard setString:self.fullpath forType:NSStringPboardType];                // copy file path as string
[pasteBoard setPropertyList:@[self.fullpath] forType:NSFilenamesPboardType];    // copy file link
于 2014-02-20T09:54:07.627 回答