保持kPasteboardTypeFileURLPromise时的错误处理

Ben*_*Uri 5 cocoa drag-and-drop objective-c nserror nspasteboard

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

据我所知,每个NSPasteboardItem的可用类型都应该有kPasteboardTypeFileURLPromise.

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

但是,当源无法履行承诺时,似乎无法通过其用户信息传递目标错误(例如NSRecoveryAttempterErrorKey等).

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

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

小智 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
Run Code Online (Sandbox Code Playgroud)