1)我使用这种方法从UIPasteboard复制图像,[UIPasteboard generalPasteboard].image;
2)创建图像后,我想清理UIPasteboard。所以我写了这个方法[UIPasteboard generalPasteboard].image = nil;,但是这个方法在ios 4和ios 5上工作得很好,但是它给ios 6带来了问题。
3)在我的应用程序中,我想清除UIPasteboard UIPasteboard ,或者没有值。我如何在ios 6上做到这一点?
发布于 2012-11-05 16:00:43
这是我目前使用的
UIPasteboard *pb = [UIPasteboard generalPasteboard];
[pb setValue:@"" forPasteboardType:UIPasteboardNameGeneral];发布于 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属性设置为“是”。
希望这能有所帮助。
https://stackoverflow.com/questions/13235528
复制相似问题