AppStore的几个OSX剪贴板管理器显示了确定复制到剪贴板的内容的源应用程序的能力。
我正在编写一些简单的剪贴板观察器,并希望在内容附近显示源应用程序图标,存储在一般的NSPasteboard中。我想知道如何实现这一目标。
据我所知,除了数据类型和数据本身之外,NSPasteboard不提供任何其他信息。
也许有些事件或通知要知道'copy'命令被触发了?还是其他一些方法?
答案 0 :(得分:6)
我相信CopyLess和Alfred 2(也支持这个)工作的方式是他们有一个计时器来检查剪贴板的变化。当他们在剪贴板上看到更改时,他们会获得活动应用程序并将该应用程序与更改相关联。它可能不是万无一失的方法,但在大多数情况下都应该有效。
答案 1 :(得分:2)
现在有一个新的准标准(截至2016年12月),请参阅http://nspasteboard.org
它的工作原理如下:
默认情况下,记录剪贴板内容的程序应假设最前面的应用程序是填充剪贴板的程序(当然,只有在设置剪贴板内容时程序已在运行时才能运行)。
但如果有org.nspasteboard.source
类型的剪贴板风格(种类),则此风格的内容应为填充剪贴板的应用的捆绑ID。
(这是一个准标准,因为它已被nspasteboard.org管理的邮件列表的感兴趣的成员讨论并达成一致)