首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何提高UIPasteboard的价值

如何提高UIPasteboard的价值
EN

Stack Overflow用户
提问于 2012-11-05 15:47:07
回答 2查看 1.7K关注 0票数 0

1)我使用这种方法从UIPasteboard复制图像,[UIPasteboard generalPasteboard].image;

2)创建图像后,我想清理UIPasteboard。所以我写了这个方法[UIPasteboard generalPasteboard].image = nil;,但是这个方法在ios 4和ios 5上工作得很好,但是它给ios 6带来了问题。

3)在我的应用程序中,我想清除UIPasteboard UIPasteboard ,或者没有值。我如何在ios 6上做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-05 16:00:43

这是我目前使用的

代码语言:javascript
复制
UIPasteboard *pb = [UIPasteboard generalPasteboard];
[pb setValue:@"" forPasteboardType:UIPasteboardNameGeneral];
票数 0
EN

Stack Overflow用户

发布于 2014-01-29 07:37:41

我很抱歉,但接受的答案只是误导/不正确。这将不能清除来自纸板的现有值。

setValue:forPasteboardType:的第二个参数是项的字符串标识符。如文档所示,它可能是UTI (查看MobileCoreServices)或用户定义的字符串。

接受答案中的方法调用使用UIPasteboardNameGeneral,它是整个pasteboard本身的标识符(如果[UIPasteboard items]中的字典数组中的项是一个键,则不是其中一个键)。由于贴图板不包含用于该键的项,因此调用将是不操作的。很容易自己来验证这一点。[[UIPasteboard generalPasteboard] name]等于UIPasteboardNameGeneral。而且,使用该键的containsPasteboardTypes:将返回NO

现在,为了解决iOS 6中可能发生的事情,苹果可能会使用UTI (比如kUTTypePNG)作为存储在黑板上的图像数据的关键。它们很可能确保为该键设置的值确实是一个NSData (而nil不是)。

为了解决你的难题,我可以提出以下建议之一:

  • 如果不想与其他应用程序共享放入剪贴板上的内容,可以使用+ (UIPasteboard *)pasteboardWithName:(NSString *)pasteboardName create:(BOOL)create 创建特定于应用程序的剪贴板。
    • 此剪贴板的内容仅供应用程序访问,在删除应用程序时将被删除。
    • 当应用程序退出时,剪贴板的内容将被清除,除非您将persistent属性设置为“是”。
    • 您仍然可以通过访问常规剪贴板来访问其他应用程序放置在剪贴板上的项。

  • 如果您绝对必须清除内容(考虑到所列的限制),可以尝试设置另一个有效的图像。我对这种方法表示怀疑,因为对于给定的剪贴板项,可能有多个键。

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13235528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档