我正在尝试创建一个拖动视图,您可以在该视图中拖动应用程序生成的文件。它是NSImageView
的子类,到目前为止我编写了这个方法:
- (void)mouseDown:(NSEvent *)pTheEvent {
NSPoint tvarMouseInWindow = [pTheEvent locationInWindow];
NSPoint tvarMouseInView = [self convertPoint:tvarMouseInWindow fromView:nil];
NSSize zDragOffset = NSMakeSize(0, 0);
NSPasteboard *zPasteBoard;
zPasteBoard = [NSPasteboard pasteboardWithName:NSDragPboard];
[zPasteBoard declareTypes:[NSArray arrayWithObject:NSTIFFPboardType] owner:self];
[zPasteBoard setData:[[self image] TIFFRepresentation] forType:NSTIFFPboardType];
[self dragImage:[self image] at:tvarMouseInView offset:zDragOffset event:pTheEvent pasteboard:zPasteBoard source:self slideBack:YES];
return;
}
当我现在将包含的图像拖离imageView并尝试将其放入Finder窗口时,它只是向后滑动而不会复制。如何正确地使用NSView
实现文件拖动(而不是放下!)区域?
答案 0 :(得分:0)
我在经过一些试验和错误后找到了解决方案并查看了NSView
提供的所有方法。这是正确的:
[self dragFile:myFile fromRect:[self bounds] slideBack:YES event:pTheEvent];
原因我必须创建一个“文件”而不是UIImage
的实例。但我的应用程序生成文件,这就是我想要的!