如何使用NSPasteboard在应用程序之间传输数据(使用上下文菜单)

问题描述:

“NSPasteboard对象将数据传入和传出粘贴板服务器。服务器由所有正在运行的应用程序共享,它包含用户剪切或复制的数据,以及其他数据一个应用程序要转移到另一个。NSPasteboard对象是应用程序的服务器和所有纸板业务的唯一接口。如何使用NSPasteboard在应用程序之间传输数据(使用上下文菜单)

的NSPasteboard对象也可用于传输数据的应用程序之间在每个应用程序的服务菜单中列出的服务提供商。拖动粘贴板(NSDragPboa rd)用于传输用户正在拖动的数据。“

我在苹果的NSPasteboard文档中发现了这个。到目前为止,我只知道如何使用粘贴板进行简单的复制粘贴。我想知道的是,如何使用上下文菜单而不是拖放操作,通过粘贴板服务器将数据用于非复制粘贴目的。例如,如果用户右键单击某个单词并在上下文菜单中单击“在字典中查找”,则该单词可能(大概)通过粘贴板发送到Dictionary应用程序。

有人可以演示概念验证应用程序,演示如何访问粘贴板服务器中存储用户使用过的单词的数据“查阅字典”吗?

我们没有必要找到“查词典”纸板。 (如果有的话)。但是,如果您想通过应用程序中的粘贴板来传输数据,则可以使用NSPasteboard类方法。

+ (NSPasteboard *)pasteboardWithName:(NSString *)name 

只需为两个应用程序使用相同的名称,并且可以在它们之间传输数据。只要确保在完成该操作后在此粘贴板上致电- releaseGlobally即可。

+0

感谢您的回答。如果这两个应用程序都是我的,那么你的方法就行但即时通讯只是想知道..是否有可能“拦截”来自另一个应用程序的纸板数据?例如,如果我想创建一个系统范围的服务来跟踪每当用户在任何应用程序中使用“在字典中查找”,我该怎么做? – hollow7

+0

您只需要知道使用的粘贴板的名称,然后就可以轮询它的-changeCount。 –