iOS - UIPasteboard not working outside app

牧云@^-^@ 提交于 2019-12-04 06:19:53

I have similar problem. That might be some conflicts with some third party library. I found that when I remove Flurry Analytics , everything is fine. I guess the lib does something on "EnterBackground" event.

You could try to "clean up" your application. remove function call on AppDelgate's enterbackground delegate.

I mean your code or third part code might do sth during "DidEnterBackground" that mass up your clipboard. try do not code anything on this:

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

Also try to remove third party code which need you to invoke in : -(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions –

To do a persistent pasteboard between applications you must use

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

I was able to restore pasteboard functionality by going back to Flurry 2.8.4. Flurry 3.0.2 and 3.0.3 somehow disabled copy/paste support with external apps like Notepad.

It seems that Flurry solved this problem by releasing the 3.0.4

Too bad, my users' complaints flooded my mailbox...

// Save text

  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);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!