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

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

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

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

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

在拖动 kPasteboardTypeFileURLPromise 时处理错误的最佳做法是什么? 是否应该由拖拽源来处理?

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

【问题讨论】:

    标签: objective-c cocoa drag-and-drop nserror nspasteboard


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-12-13
      • 1970-01-01
      • 2011-07-09
      • 2022-12-20
      • 1970-01-01
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多