【发布时间】:2017-02-20 04:20:40
【问题描述】:
好的,这是我正在使用的代码:
if let image = NSImage(pasteboard: pasteboard){
//..
}
我有 3 种方式让图像进入应用程序:
- 如果图像被拖到窗口,并且使用拖动粘贴板,图像是正确的。
- 如果图像是在浏览器中复制的,请“复制图像”.. 并使用 NSPasteboard.general().. 正确粘贴图像。
- 如果图片是在Finder中复制的,右键->复制“image-name.jpg”。那么粘贴的图像不正确。相反,我得到了 JPEG 文件类型的图标。
我尝试了其他方法,包括苹果的 sn-p(结果相同,我得到的是图标而不是图像本身):
NSPasteboard *pasteboard = [NSPasteboard generalPasteboard];
NSArray *classArray = [NSArray arrayWithObject:[NSImage class]];
NSDictionary *options = [NSDictionary dictionary];
BOOL ok = [pasteboard canReadObjectForClasses:classArray options:options];
if (ok) {
NSArray *objectsToPaste = [pasteboard readObjectsForClasses:classArray options:options];
NSImage *image = [objectsToPaste objectAtIndex:0];
[imageView setImage:image];
}
【问题讨论】:
标签: swift macos nspasteboard