首页 > 解决方案 > 如何为 NSPasteboardTypeFileURL 设置DataProvider

问题描述

我想粘贴一个应该从服务器下载的文件。我为 NSPasteboardTypeFileURL 类型设置了粘贴板

   NSPasteboardItem *item = [[NSPasteboardItem alloc] init];
   [item setDataProvider:self forTypes:[NSArray arrayWithObject:NSPasteboardTypeFileURL]];
   [item setString:@"file:///Users/dry/Desktop/Amove.mp4" forType:NSPasteboardTypeFileURL];
   [pasteboard writeObjects:[NSArray arrayWithObject:item]];

我在路径:“/Users/dry/Desktop”创建了一个名为“Amove.mp4”的空文件,它显示我可以将其粘贴到其他目录,但粘贴的文件是我应该从服务器下载的空文件它之前实际上粘贴到其他目录。我指的是微软远程桌面,当我复制一个大文件时,它设置了粘贴板 FILEURL:file:///var/folders/dv/34y33j8s1t16b4pv48qgg90h0000gn/T/0F5ADFBF-EB20-4F92-834F-40D0D4FDA8AD/a.mp4 我发现这是一个没有内容的空文件,我粘贴后会进入下载,下载完成后粘贴。我怎样才能像 Microsoft 远程桌面一样实现它?

我尝试使用 [item setDataProvider:self forTypes:[NSArray arrayWithObject:NSPasteboardTypeFileURL]]; 它没办法。

标签: macoscopy-pastenspasteboard

解决方案


推荐阅读