我已经创建了NSImageView的子类,并实现了非正式协议,用于在同一个类的其他实例之间拖动图像。我在拖动操作之前保持对视图图像的引用,并且能够根据某些标准将其设置回所述图像。
但是,我似乎无法检测拖动操作是否被取消。我知道draggingEnded方法被调用,但是当拖动成功时也会调用它。有什么想法吗?
答案 0 :(得分:3)
我遇到了类似的要求。您可以检查传递给NSDraggingSource协议方法operation
以检测拖动取消的draggedImage:endedAt:operation:
参数的事实没有很好地记录。
在draggedImage:endedAt:operation:
方法中,只需添加以下内容:
if (operation == NSDragOperationNone)
return;
// Otherwise perform any drag completion tasks.