2010-07-11 14 views
3

我已经创建了NSImageView的子类并实现了用于在同一类的其他实例之间拖动图像的非正式协议。我在拖动操作之前保留对视图图像的引用,并且能够在给定的标准下将其设置回所述图像。如何使用NSDraggingInfo或类似方法检测拖动操作是否被取消?

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

回答

3

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

draggedImage:endedAt:operation:方法只需添加以下检查:

if (operation == NSDragOperationNone) 
    return; 

// Otherwise perform any drag completion tasks. 
相关问题