Почему мой код UIPasteboard не работает? - PullRequest
2 голосов
/ 02 января 2012

У меня странная проблема с UIPasteboard.

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

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

Он работает нормально с симулятором, но не работаетс iPad.Это из-за какой-либо проблемы с набором символов?

Ответы [ 2 ]

4 голосов
/ 06 января 2012

У меня была эта проблема из-за набора символов, но я не уверен, что это было только с 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 голос
/ 05 января 2012

Из моего собственного опыта видно, что в 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?

...