保留 kPasteboardTypeFileURLPromise 时的错误处理

Posted

技术标签:

【中文标题】保留 kPasteboardTypeFileURLPromise 时的错误处理【英文标题】:Error handling when keeping kPasteboardTypeFileURLPromise 【发布时间】:2013-08-29 09:32:41 【问题描述】:

我的 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

【讨论】:

以上是关于保留 kPasteboardTypeFileURLPromise 时的错误处理的主要内容,如果未能解决你的问题,请参考以下文章

物理中 如果要保留小数 保留到几位?

excel用函数保留小数位的教程

dna半保留复制和全保留复制的区别?

计算钱时一定要保留两位小数吗

delphi保留2位小数?如何实现。

python中怎样保留两位小数