错误处理时保持kPasteboardTypeFileURLPromise
问题描述:
我的Mac应用程序应该允许拖放kPasteboardTypeFileURLPromise从文件承诺或到粘贴板。错误处理时保持kPasteboardTypeFileURLPromise
据我所知,每个NSPasteboardItem应该在其可用的类型中有kPasteboardTypeFileURLPromise。
与由拖动目标处理的NSURL不同,kPasteboardTypeFileURLPromise由拖动源写入到由拖动目标设置的目标位置。
但是,当源未能履行承诺时,似乎没有办法将目标错误及其用户信息传递给恢复(例如NSRecoveryAttempterErrorKey等)。
拖动kPasteboardTypeFileURLPromise时处理错误的最佳做法是什么? 它们是否应该由拖放源处理?
与由目标处理错误的拖动NSURL相比,它可能会导致一些不一致。
答
如果u需要复制文件到剪贴板,使用此:
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