可可 – Unfiltering NSPasteboard

可可 – Unfiltering NSPasteboard,第1张

概述有没有办法对源代码应用程序明确声明它将提供的NSPasteboard进行过滤? 我正在尝试在我的应用程序中序列化粘贴板数据.当另一个应用程序将RTF文件放在粘贴板上然后我要求可用类型时,我得到11种不同风格的RTF,从原始RTF到普通字符串到dyn.*值. 将所有数据保存到磁盘上的plist或原始数据通常不是问题,因为它非常小,但是当在粘贴板上放置任何相当大的图像时,产生的输出可能比源大几十倍数据 有没有办法对源代码应用程序明确声明它将提供的NSPasteboard进行过滤?

我正在尝试在我的应用程序中序列化粘贴板数据.当另一个应用程序将RTF文件放在粘贴板上然后我要求可用类型时,我得到11种不同风格的RTF,从原始RTF到普通字符串到dyn.*值.

将所有数据保存到磁盘上的pList或原始数据通常不是问题,因为它非常小,但是当在粘贴板上放置任何相当大的图像时,产生的输出可能比源大几十倍数据(通过过滤可以获得多种TIFF和PICT数据).

我想尽可能地保存原始应用程序可用的内容.

约翰,你比我自己或与我一起工作的绅士更加敏锐,因为恐龙在地球上漫游,他一直在做Mac编程.我们都没有注意到你突出显示的文字……我不知道为什么.显然,在这个问题上开始的时间过长了.

虽然我接受了你的答案作为正确的答案,但它并没有完全回答我原来的问题.我想要的是一种识别可以成为其他口味的口味的方法,只需将它们放在粘贴板上并知道哪些类型最初由提供者提供.走路时,类型列表将为我提供提供它们的应用程序的首选顺序,它不会告诉我哪些我可以安全地忽略,因为它们将在我稍后重新填充粘贴板时重新创建.

我得出结论,没有“好”的方法来做到这一点. [NSPasteboard declaredTypesFromOwner]会很棒,但它不存在.

解决方法 – [NSPasteboard类型]将返回剪贴板上数据的所有可用类型,但应返回它们 “in the order they were declared.”

– [NSPasteboard declareTypes:owner:]的文档说明了“the types should be ordered according to the preference of the source application.”

因此,正确实现的粘贴板所有者应该将内容的最丰富表示(可能是原始内容)声明为第一种类型;所以一个合理的单一代表应该是:

[pb dataForType:[[pb types] objectAtIndex:0]]
总结

以上是内存溢出为你收集整理的可可 – Unfiltering NSPasteboard全部内容,希望文章能够帮你解决可可 – Unfiltering NSPasteboard所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1011820.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存