我对UIPasteboard有一个奇怪的问题。
我正在从Safari复制文本,然后在我的应用程序中查看UIPasteboard以查看它是否包含使用此代码的任何数据:
[[UIPasteboard generalPasteboard] containsPasteboardTypes:[NSArray arrayWithObject:@"public.utf8-plain-text"]]
它可以在模拟器上正常工作,但不能与iPad配合使用。这是因为任何字符集问题吗?
答案 0 :(得分:4)
由于字符集我遇到了这个问题,但我不确定它只适用于IOS 5.0或所有版本。但我用一个简单的解决方案解决了我的问题,
UIPasteboardTypeListString
[[UIPasteboard generalPasteboard] containsPasteboardTypes:UIPasteboardTypeListString];
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
if (pasteboard.string != nil) { [self insertText:pasteboard.string]; }
我希望这个答案可以帮助任何人。
答案 1 :(得分:1)
根据我自己的经验,在iOS 5中,纯文本不再以public.utf8-plain-text
的形式出现在粘贴板上,而是作为public.text
。使用UIPasteboardTypeListString
而不是显式指定字符串也可以。
所以我现在在我的代码中使用以下内容来检测粘贴板中的纯文本:
[[UIPasteboard generalPasteboard] containsPasteboardTypes:[NSArray arrayWithObjects:@"public.utf8-plain-text", @"public.text", nil]]
或
[[UIPasteboard generalPasteboard] containsPasteboardTypes:UIPasteboardTypeListString]
您是否正在针对iOS 4.x在模拟器中进行测试并且您的iPad已安装iOS 5?