2012-01-02 22 views
2

私はUIPasteboardに奇妙な問題があります。私のUIPasteboardコードはなぜ機能しないのですか?

私はサファリからテキストをコピーして、私のアプリでは、それは、このコードを使用して任意のデータが含まれているかどうかを確認するためにUIPasteboardに探しています:それはシミュレータで細かい作業が、iPadでの作業ではないです

[[UIPasteboard generalPasteboard] containsPasteboardTypes:[NSArray arrayWithObject:@"public.utf8-plain-text"]] 

。文字セットの問題が原因ですか?

+0

UIPasteboardTypeListStringを使用してこの問題を解決しました。 [[UIPasteboard generalPasteboard] containsPasteboardTypes:UIPasteboardTypeListString]; UIPasteboard * pasteboard = [UIPasteboard generalPasteboard]; if(pasteboard.string!= nil){ [self insertText:pasteboard.string]; } –

+0

これを回答として追加し、今後これを遭遇する人々のためにあなた自身の答えを受け入れてください。 –

答えて

4

キャラクタセットのためにこの問題が発生しましたが、IOS 5.0またはすべてのバージョンでのみ確認されています。しかし、私はこの答えは誰にも役立つことを願って、簡単な解決策、

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIPasteboard_Class/Reference.html

[[UIPasteboard generalPasteboard] containsPasteboardTypes:UIPasteboardTypeListString]; 
UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
if (pasteboard.string != nil) { [self insertText:pasteboard.string]; } 

をUIPasteboardTypeListString

と私の問題を解決しました。

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がインストールされていますか?

関連する問題