¿Cómo puedo detectar si se canceló una operación de arrastre usando NSDraggingInfo o similar?
-
13-09-2020 - |
Pregunta
Creé una subclase de NSImageView e implementé el protocolo informal para arrastrar imágenes entre otras instancias de la misma clase.Mantengo una referencia a la imagen de la vista antes de la operación de arrastre y puedo volver a configurarla en dicha imagen dados ciertos criterios.
Sin embargo, parece que no puedo detectar si se canceló la operación de arrastre.Sé que se llama al método draggingEnded pero también se llama cuando un arrastre fue exitoso.¿Algunas ideas?
Solución
Encontré un requisito similar.El hecho de que puedas examinar el operation
argumento pasado al método del protocolo NSdraggingSource draggedImage:endedAt:operation:
para detectar la cancelación de arrastre no está muy bien documentado.
En el draggedImage:endedAt:operation:
método simplemente agregue la siguiente verificación:
if (operation == NSDragOperationNone)
return;
// Otherwise perform any drag completion tasks.