如何知道另一个Cocoa应用程序何时粘贴您放入普通粘贴板的项目

时间:2015-09-05 17:41:41

标签: objective-c macos swift cocoa nspasteboard

在Mac OS X应用程序(Cocoa)中,我正在将项目复制到常规粘贴板NSPasteboard.generalPasteboard()中。该项使用实现协议NSPasteboardItemDataProvider的对象,以在用户使用其他应用程序粘贴数据时提供数据。

根据目标应用程序选择的类型,可以完成一些临时工作(将文件写入临时文件)。

有没有办法检测此操作何时完成或取消,所以我可以在删除之前创建的临时文件后进行一些清理?

例如,我使用相同的数据提供程序来拖动复制/粘贴操作。采用NSDraggingSource协议,我实施方法 - draggingSession:endedAtPoint:operation:以了解何时进行清理。

1 个答案:

答案 0 :(得分:0)

NSPasteboardItemDataProvider协议为此目的使用方法-pasteboardFinishedWithDataProvider:。它被称为给你一个清理的机会。

出于某种原因,这还不够吗?