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?
3
A
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.