2012-01-02 40 views
2

我對UIPasteboard有一個奇怪的問題。爲什麼我的UIPasteboard代碼不工作?

我從Safari瀏覽器複製文本,然後在我的應用程序尋找到UIPasteboard,看它是否使用此代碼包含任何數據:

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

它的正常工作與模擬器,但不與iPad的合作。這是因爲任何字符集問題?

+0

我已經使用UIPasteboardTypeListString Array解決了這個問題 [[UIPasteboard generalPasteboard] containsPasteboardTypes:UIPasteboardTypeListString]; UIPasteboard * pasteboard = [UIPasteboard generalPasteboard]; if(pasteboard.string!= nil){self insertText:pasteboard.string]; } – 2012-01-02 12:15:59

+0

請添加此作爲答案,然後接受你自己的答案爲未來絆倒這個人。 – 2012-01-02 22:34:38

回答

4

由於字符集,我有這個問題,但我不知道它只是與IOS 5.0或所有版本。但我已經解決了我的問題,一個簡單的解決方案,

UIPasteboardTypeListString

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]; } 

我希望這個回答能幫助任何人。

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?