2012-01-02 4 views
2

У меня странная проблема с UIP-картой.Почему мой UIP-код не работает?

я копирую текст из Safari, а затем в моем приложении, глядя в UIPasteboard, чтобы увидеть, если он содержит какие-либо данные, используя этот код:

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

Это работает отлично с симулятором, но не работает с IPad. Это из-за проблемы с набором символов?

+0

Я решил эту проблему с помощью UIPasteboardTypeListString Array [[UIPasteboard generalPasteboard] содержитPasteboardTypes: UIPasteboardTypeListString]; UIPРаздел * картон = [UIPasteboard generalPasteboard]; if (cardboard.string! = Nil) { [self insertText: cardboard.string]; } –

+0

Пожалуйста, добавьте это как ответ, а затем примите свой собственный ответ для людей, которые спотыкаются об этом в будущем. –

ответ

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] 

Является ли это случай, если вы проверяете в тренажере против прошивки 4. x и ваш iPad имеет iOS 5?