如何使用NSDraggingInfo或类似方法检测是否取消了拖动操作?

时间:2010-07-11 20:03:57

标签: objective-c macos drag-and-drop nsimageview nsdragginginfo

我已经创建了NSImageView的子类,并实现了非正式协议,用于在同一个类的其他实例之间拖动图像。我在拖动操作之前保持对视图图像的引用,并且能够根据某些标准将其设置回所述图像。

但是,我似乎无法检测拖动操作是否被取消。我知道draggingEnded方法被调用,但是当拖动成功时也会调用它。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

我遇到了类似的要求。您可以检查传递给NSDraggingSource协议方法operation以检测拖动取消的draggedImage:endedAt:operation:参数的事实没有很好地记录。

draggedImage:endedAt:operation:方法中,只需添加以下内容:

if (operation == NSDragOperationNone)
    return;

// Otherwise perform any drag completion tasks.