2010-07-11 10 views
3

J'ai créé une sous-classe de NSImageView et implémenté le protocole informel pour faire glisser des images entre d'autres instances de la même classe. Je garde une référence à l'image de la vue avant l'opération de dragage et je suis capable de la restituer à cette image en fonction de certains critères. Cependant, je n'arrive pas à détecter si l'opération de glissement a été annulée. Je sais que la méthode draggingEnded est appelée mais elle est également appelée quand un glissement a réussi. Des idées?Comment détecter si une opération de glissement a été annulée avec NSDraggingInfo ou similaire?

Répondre

3

J'ai rencontré une exigence similaire. Le fait que vous pouvez examiner l'argument operation transmis à la méthode de protocole NSDraggingSource draggedImage:endedAt:operation: pour détecter l'annulation du glissement n'est pas très bien documenté.

Dans la méthode draggedImage:endedAt:operation: il suffit d'ajouter le contrôle suivant:

if (operation == NSDragOperationNone) 
    return; 

// Otherwise perform any drag completion tasks. 
Questions connexes