有没有办法为源应用程序特别声明它将提供的内容取消过滤 NSPasteboard?
我正在尝试在我的应用程序中序列化粘贴板数据。当另一个应用程序将 RTF 文件放在粘贴板上,然后我询问可用类型时,我会得到十一种不同风格的 RTF,从原始 RTF 到纯字符串再到 dyn.* 值。
将所有数据保存到磁盘上的 plist 或原始数据通常不是问题,因为它非常小,但是当在粘贴板上放置任何相当大的图像时,生成的输出可能比源大几十倍数据(通过过滤提供多种类型的 TIFF 和 PICT 数据)。
如果可能的话,我希望能够保存原始应用程序提供的内容。
约翰,你比我自己或与我一起工作的那位自恐龙在地球上漫游以来一直在做 Mac 编程的绅士要敏锐得多。我们都没有注意到你突出显示的文字......我不知道为什么。显然,在这个问题上开始时间太长了。
虽然我接受了您的答案作为正确答案,但它并不能完全回答我原来的问题。我一直在寻找一种方法来识别可以变成其他口味的口味,只需将它们放在粘贴板上,并知道这些类型中的哪些最初是由供应商提供的。虽然遍历类型列表会给我提供提供它们的应用程序的首选顺序,但它不会告诉我可以安全地忽略哪些,因为稍后我重新填充粘贴板时会重新创建它们。
我得出的结论是,没有“好”的方法可以做到这一点。 [NSPasteboard declaredTypesFromOwner]
会很棒,但它不存在。