Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

iOS 9 UIPasteboard won't work in the background

iOS 9's [UIPasteboard generalPasteboard].string will become null when the app is in the background running a background task or Today widget.

Can't we retrieve a clipboard text in the background any more?

like image 812
Shingo Fukuyama Avatar asked Aug 10 '15 13:08

Shingo Fukuyama


Video Answer


1 Answers

Can you explain where do you launch generalPasteboard?.

This is what I would do:

In your app delegate's applicationdidBecomeActive method put in this code:

[[NSNotificationCenter defaultCenter] postNotificationName:@"appDidBecomeActive" object:nil];

Next , in your current active view controller's init method subscribe to the notification.

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(returnFromBg)        
                                             name:@"appDidBecomeActive" 
                                             object:nil];

- (void)returnFromBg {
       UIPasteboard *appPasteBoard = [UIPasteboard generalPasteboard];
       yourTextField.text = [appPasteBoard string;
}

PS Don't forgot to remove the observer when the view controller is removed:

[[NSNotificationCenter defaultCenter] removeObserver:self];
like image 132
Alessandro Ornano Avatar answered Nov 05 '22 13:11

Alessandro Ornano