如何解决NSWindow的dragImage示例?
| 我正在寻找NSWindow的dragImage方法的解释。- (void)dragImage:(NSImage *)image at:(NSPoint)imageLocation offset:(NSSize)pointerOffset event:(NSEvent *)event pasteboard:(NSPasteboard *)pasteboard source:(id)sourceObject slideBack:(BOOL)slideBack
有什么帮助吗?
解决方法
该方法的NSView文档提供了更详细的解释,包括示例代码。两种方法之间的唯一区别是ѭ1所在的坐标系。可在http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html中找到它。 #// apple_ref / doc / uid / 20000014-SW135
编辑:这是来自该链接的示例代码,带有添加的注释。
- (void)mouseDown:(NSEvent *)theEvent {
// Create an offset for the offset parameter. Since it is ignored,you should just use 0,0.
NSSize dragOffset = NSMakeSize(0.0,0.0);
NSPasteboard *pboard;
// Get the pasteboard used to hold drag-and-drop data
pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
// Declare the data type used on the pasteboard. This sample passes a TIFF representation of an image
[pboard declareTypes:[NSArray arrayWithObject:NSTIFFPboardType] owner:self];
// Add the data to the pasteboard.
[pboard setData:[[self image] TIFFRepresentation] forType:NSTIFFPboardType];
// Call dragImage:... with:
// An image representing the object you are dragging. This could be a file\'s icon or a screenshot of a view,etc.
[self dragImage:[self image]
// The starting location of the image in this views coordinates. This should be close to the location of the object you are dragging.
at:[self imageLocation]
// An NSSize structure. This is not used.
offset:dragOffset
// The mousedown event
event:theEvent
// The pasteboard which contains the data
pasteboard:pboard
// The object providing the data
source:self
// Whether or not the image should slide to its starting location if the drag isn\'t completed.
slideBack:YES];
}
源对象(在这种情况下为自身)需要实现NSDraggingSource协议。您可能也对NSPasteboard类参考感兴趣。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。