2011-12-06 1 views
7

Je pense que c'est plus une faille SDK que mes applications, mais récemment j'ai essayé d'utiliser UIPasteboard pour copier les chaînes de mon application et ça marche bien de coller quelque part quand je suis à l'intérieur de l'application.iOS - UIPasteboard ne fonctionne pas en dehors de l'application

Lorsque je passe à une autre application en appuyant sur le bouton d'accueil ou quelque chose comme ça, je n'ai tout simplement pas la possibilité de coller le contenu copié.

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

Il imprimera « blah » dans ce cas, et chaque fois que je touche rapidement un champ de texte, il affichera l'option de pâte. Mais si je vais à Safari, Notes ou Mail Il ne me montre pas cette option.

Aussi, si je copie quelque chose du courrier et aller à mon application, je ne vois pas l'option coller aswell ...

+0

J'ai eu ce problème avec l'iOS Simulateur aussi, je pense que c'est juste le simulateur. –

+0

Eh bien, j'ai testé sur l'appareil et cela ne fonctionne pas ... –

Répondre

2

J'ai le même problème. Cela pourrait être des conflits avec une bibliothèque tierce. J'ai trouvé que lorsque je supprime Flurry Analytics, tout va bien. Je suppose que la lib fait quelque chose sur l'événement "EnterBackground".

Vous pourriez essayer de "nettoyer" votre application. supprimer l'appel de fonction sur le délégué enterbackground de AppDelgate.

Je veux dire que votre code ou le code d'une tierce partie pourrait faire sth pendant "DidEnterBackground" qui masse votre presse-papiers. essayez de ne pas coder quoi que ce soit à ce sujet:

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

Essayez également de supprimer le code tiers qui ont besoin que vous invoquer: - (BOOL) application: application (UIApplication *) didFinishLaunchingWithOptions: (NSDictionary *) launchOptions -

+1

Pourriez-vous être plus précis? Je n'ai pas compris votre rôle à propos du "nettoyage" –

1

J'ai été capable de restaurer la fonctionnalité de la table de montage en revenant à Flurry 2.8.4. Flurry 3.0.2 et 3.0.3 en quelque sorte désactivé le copier/coller avec des applications externes comme le Bloc-notes.

1

Il semble que Flurry a résolu ce problème en libérant le 3.0.4

Dommage, mes plaintes des utilisateurs ... ma boîte aux lettres ont inondé

4

Pour faire une table de montage persistant entre les applications que vous devez utiliser

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

// Enregistrer le texte

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

Pouvez-vous expliquer comment cela fonctionne? – Will

Questions connexes