2013-05-01 68 views
6

来自AppStore的几个OSX剪贴板管理器显示确定复制到剪贴板的内容的源应用程序的能力。确定当前粘贴板内容的源应用程序

我正在写一些简单的剪贴板观察者,并希望显示内容附近的源应用程序图标,存储在一般的NSPasteboard中。我想知道这是如何实现的。

据我所知,除了数据和数据本身类型外,NSPasteboard不提供任何附加信息。

也许有一些事件或通知知道“复制”命令已被触发?或者其他一些方式?

+1

几个OSX剪贴板经理=无复制。据我所知,这是唯一可以实现这一功能的应用程序。 – UJey 2013-05-01 20:55:17

+0

也许他们以某种方式使用AppleScript? – UJey 2013-05-01 20:58:18

回答

6

我相信CopyLess和Alfred 2(也支持这个)的工作方式是他们有一个计时器来检查剪贴板的变化。当他们在剪贴板上看到更改时,他们将获得活动应用程序并将该应用程序与更改关联。这可能不是一个万无一失的方法,但应该在大多数情况下工作。

+1

谢谢@Dustin。我最后得出了同样的结论。 – UJey 2013-05-02 11:16:41

2

有一个新的准标准现在这样(为2016年12月的),看到http://nspasteboard.org

其工作原理如下:

  • 默认情况下,该程序记录剪贴板中的内容承担最前面的应用程序是填充剪贴板的应用程序(当然,只有在剪贴板内容设置时程序已经运行的情况下才有效)。

  • 但是,如果有org.nspasteboard.source类型的剪贴板味(实物),那么这个味道的内容应是充满clipbard应用程序的捆绑ID。

(这是一个准标准,因为它已经讨论并通过nspasteboard.org管理邮件列表的有关成员商定)

+0

有人,向1Password开发人员表明:)我的意思是他们的菜单代理的'org.nspasteboard.source'。 – UJey 2017-01-05 16:27:33

+1

1pw开发者位于上述邮件列表中。有人必须说服他们实施新协议。 – 2017-01-08 11:45:37

相关问题