2011-12-06 13 views
7

Creo que esto es más un error de SDK que mis aplicaciones, pero recientemente he estado tratando de usar UIPasteboard para copiar cadenas de mi aplicación y funciona bien para pegar en algún lugar cuando estoy dentro de la aplicación.iOS - UIPasteboard no funciona fuera de la aplicación

Cuando voy a otra aplicación presionando el botón de inicio o algo por el estilo, simplemente no tengo la opción de pegar el contenido copiado.

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

Se imprimirá "bla" en este caso, y siempre que toque un campo de texto rápida, se mostrará la opción de pegado. Pero si voy a Safari, Notes o Mail, no me muestra esa opción.

Además, si copio algo de correo electrónico y voy a mi aplicación, no voy a ver la opción de pegado aswell ...

+0

que he tenido este problema con el iOS Simulador también, creo que es solo el simulador. –

+0

Bueno, he estado probando en el dispositivo y no funciona ... –

Respuesta

2

tengo problema similar. Eso podría ser algún conflicto con una biblioteca de terceros. Descubrí que cuando elimino Flurry Analytics, todo está bien. Supongo que la lib hace algo en el evento "EnterBackground".

Puede intentar "limpiar" su aplicación. eliminar llamada de función en el delegado enterbackground de AppDelgate.

Me refiero a que su código o el código de la tercera parte pueden hacer algo durante "DidEnterBackground" que aumentan la masa de su portapapeles. tratar no codificar cualquier cosa en esto:

  • (void) applicationDidEnterBackground: (UIApplication *) aplicación {}

también tratar de eliminar el código de terceros que se necesita para invocar en: - (BOOL) aplicación: (UIApplication *) aplicación didFinishLaunchingWithOptions: (NSDictionary *) launchOptions -

+1

¿Podría ser más específico? No entendí tu parte sobre "limpiar" –

1

Pude restaurar la funcionalidad del cartón volviendo a Flurry 2.8.4. Flurry 3.0.2 y 3.0.3 de alguna manera deshabilitaron la compatibilidad de copiar/pegar con aplicaciones externas como el Bloc de notas.

1

Parece que la ráfaga resuelto este problema mediante la liberación de la versión 3.0.4

Lástima, las quejas de mis usuarios inundaron mi buzón ...

4

Para hacer una mesa de trabajo persistente entre aplicaciones debe utilizar

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

// Guardar el texto

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

¿Puedes explicar cómo funciona esto? – Will

Cuestiones relacionadas