2011-12-06 14 views
7

Myślę, że jest to raczej wadą SDK niż moich aplikacji, ale ostatnio próbowałem użyć UIPasteboard do skopiowania ciągów z mojej aplikacji i działa dobrze, aby wkleić gdzieś, kiedy jestem wewnątrz aplikacji.iOS - UIPasteboard nie działa poza aplikacją

Kiedy przechodzę do innej aplikacji naciskając przycisk strony głównej lub coś w tym stylu, po prostu nie mam możliwości wklejenia skopiowanej zawartości.

UIPasteboard *pasteboard = [UIPasteboard generalPasteboard]; 
[pasteboard setString: @"blah" ]; 
NSLog(@"%@", pasteboard.string); 

będzie drukować „bla”, w tym przypadku, a gdy ja szybko dotknij pole tekstowe, to pokaże opcji wklejania. Ale jeśli pójdę do Safari, Notatki lub Mail To nie pokazuje mi tej opcji.

Również Gdybym skopiować coś z poczty i przejdź do mojej aplikacji, nie będę widzieć opcję wklejania aswell ...

+0

miałem ten problem z iOS Symulator też, myślę, że to tylko symulator. –

+0

Cóż, testowałem na urządzeniu i to nie działa ... –

Odpowiedz

2

mam podobny problem. Mogą to być pewne konflikty z bibliotekami stron trzecich. Odkryłem, że po usunięciu Flurry Analytics wszystko jest w porządku. Domyślam się, że lib robi coś na zdarzeniu "EnterBackground".

Możesz spróbować "wyczyścić" swoją aplikację. usuń wywołanie funkcji na delegacie obiektu docelowego AppDelgate.

Mam na myśli, że twój kod lub kod trzeciej części może zrobić coś w trakcie "DidEnterBackground", które zwiększają twój schowek. spróbuj nie kodować coś na ten temat:

  • (void) applicationDidEnterBackground: (UIApplication *) aplikacja {}

także próby usunięcia kodów innych producentów, które musisz powołać się na: - (BOOL) application: aplikacja (UIApplication *) didFinishLaunchingWithOptions: (NSDictionary *) launchOptions -

+1

Czy mógłbyś być bardziej konkretny? Nie zrozumiałam twojej roli w kwestii "sprzątania". –

1

Udało mi się przywrócić funkcjonalność obszaru roboczego, wracając do Flurry 2.8.4. Flurry 3.0.2 i 3.0.3 w jakiś sposób wyłączają obsługę kopiowania/wklejania w zewnętrznych aplikacjach, takich jak Notatnik.

1

Wydaje się, że Flurry rozwiązał ten problem poprzez zwalnianie 3.0.4

Szkoda, skargi moich użytkowników zalane mojej skrzynki pocztowej ...

4

Aby wykonać trwałe Tektura między aplikacjami należy użyć

UIPasteboard *pasteboard = [UIPasteboard pasteboardWithName:pasteboardIdentifier create:YES]; 
[pasteboard setPersistent:YES]; 
[pasteboard setString:string]; 
1

// Zapisz tekst

UIPasteboard* board = [UIPasteboard 
pasteboardWithName:@"com.company.wtv" create:YES]; 
board.persistent=YES; [board setValue:@"123456ccc" 
forPasteboardType:@"com.company.wtv.sharedValue"]; 

// Retrive text 

    UIPasteboard* board = [UIPasteboard pasteboardWithName:@"com.company.wtv" create:YES]; 
    board.persistent=YES; 
    NSData* result=nil; 
    NSString*resultStr=nil; 
    result =[board valueForPasteboardType:@"com.company.wtv.sharedValue"]; 
    resultStr=[[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding];// I got resultStr containing 
123456ccc 

    NSLog(@"key %@",resultStr); 
+0

Czy możesz wyjaśnić, jak to działa? – Will

Powiązane problemy