/ / Cómo saber cuando otra aplicación de Cocoa pega un elemento que pones en el tablero general: objetivo-c, macos, swift, cocoa, nspasteboard

Cómo saber cuándo otra aplicación de Cocoa pega un elemento que pones en la mesa de trabajo general: object-c, macos, swift, cocoa, nspasteboard

En una aplicación de Mac OS X (Cocoa), estoy copiando un elemento en la mesa de trabajo general NSPasteboard.generalPasteboard(). El artículo hace uso de un objeto que implementa el protocolo. NSPasteboardItemDataProvider, para proporcionar los datos cuando el usuario los pega con otra aplicación.

Dependiendo del tipo elegido por la aplicación de destino, se puede realizar algún trabajo temporal (como escribir un archivo en un archivo temporal).

¿Hay alguna manera de detectar cuándo se realiza o cancela esta operación, de modo que pueda hacer una limpieza después (como eliminar el archivo temporal creado anteriormente)?

Como ejemplo, utilizo el mismo proveedor de datos para arrastrar operaciones de copiar / pegar. Adoptando NSDraggingSource protocolo, implemento el método - draggingSession:endedAtPoint:operation: para saber cuándo hacer la limpieza.

Respuestas

0 para la respuesta № 1

los NSPasteboardItemDataProvider el protocolo tiene el método -pasteboardFinishedWithDataProvider: para este propósito. Está llamado para darle la oportunidad de limpiar.

¿No es eso suficiente por alguna razón?