将文件复制到剪贴板

use*_*274 3 clipboard objective-c

伙计们!有谁知道如何实现这一目标?我的意思是:如果我想把一个字符串放到剪贴板上,我会这样做

NSPasteboard *pboard = [NSPasteboard generalPasteboard];
[pboard declareTypes:[NSArray arrayWithObject:NSPasteboardTypeString] owner:self];
[pboard setString:@"aString" forType:NSPasteboardTypeString];
Run Code Online (Sandbox Code Playgroud)

但是,如果我想将文件放入剪贴板怎么办?我想找到一种方法来使用文件路径作为参数,然后能够通过上下文菜单或CMD-V将该文件粘贴到Finder中的任何位置.

有谁能够帮我?

非常感谢!

Byr*_*ode 5

快速将它们放在一起,但使用CMD + V和Contextual Paste进行测试.

NSURL *object = [[NSURL alloc] initFileURLWithPath:@"/Users/username/Desktop/main.png"];
NSPasteboard *pb = [NSPasteboard generalPasteboard];
[pb clearContents];

NSArray *objectsToCopy = [[NSArray alloc] initWithObjects:object, nil];
BOOL pasted = [pb writeObjects:objectsToCopy];

if(pasted) // paste was successful
    NSLog(@"pasted");

[object release];
[objectsToCopy release];
[pb release];
Run Code Online (Sandbox Code Playgroud)


use*_*274 5

经过一小时的小时和小时搜索,我终于得到了简短的回答......

NSArray *fileList = [NSArray arrayWithObjects:filePath1, filePath2, nil];
NSPasteboard *pboard = [NSPasteboard generalPasteboard];
[pboard declareTypes:[NSArray arrayWithObject:NSFilenamesPboardType] owner:nil];
[pboard setPropertyList:fileList forType:NSFilenamesPboardType];
Run Code Online (Sandbox Code Playgroud)