我从来没有处理过很多与NSViews,所以我在这方面的损失。我有一个自定义类,其中包含一个NSImage
伊娃。我也有一个NSView
的子类,其中包含我的自定义类的实例数组。自定义类的NSImage
在创建时被绘制在NSView
的中心。我需要能够自由地围绕NSView
拖动NSImage
。如何实现在NSView中拖动NSImage?
我已实现了以下方法开始:
-(void)mouseDown:(NSEvent *)theEvent
{
[self beginDraggingSessionWithItems: /* I don't know what to put here */
event:theEvent
source:self];
}
我试图放置NSImage
对象从我的自定义类的数组作为项目拖,但将引发异常。我也尝试创建一个NSDraggingItem
放置在那里,但它不能将对象写入粘贴板并引发异常。
-(void)draggingSession:(NSDraggingSession *)session willBeginAtPoint:(NSPoint)screenPoint
{
NSLog(@"began");
}
-(void)draggingSession:(NSDraggingSession *)session movedToPoint:(NSPoint)screenPoint
{
NSLog(@"moved");
}
-(void)draggingSession:(NSDraggingSession *)session endedAtPoint:(NSPoint)screenPoint operation:(NSDragOperation)operation
{
NSLog(@"ended");
}
这些方法得到正确称为我点击并拖动我的鼠标在我的NSView
子但它们是无用的,直到我能得到要移动的对象。
我相信答案可能是为每个图像创建一个NSDraggingItem
,然后使用它在视图中自由移动它们,但是我无法使它适用于一个对象,也不知道如何正确实现此想法。任何帮助表示赞赏。
'拖动图像中写道:在:偏移:事件:纸板:来源:slideBack:从10.10 SDK开始已弃用。 – 2014-07-07 06:55:47