Ho avuto lo stesso problema. Secondo la documentazione UIPasteboard Class Reference per la proprietà changeCount
(corsivo è mio):
Ogni volta che il contenuto di un cambiamento-specifico di cartone, quando vengono aggiunti elementi di cartone, modificate o rimosse-UIPasteboard incrementa il valore di questa proprietà. Dopo aver incrementato il conteggio delle modifiche, UIPasteboard pubblica le notifiche denominate UIPasteboardChangedNotification (per aggiunte e modifiche) e UIPasteboardRemovedNotification (per le rimozioni). ... La classe aggiorna anche il conteggio delle modifiche quando un'applicazione si riattiva e un'altra applicazione ha modificato il contenuto del cartone. Quando gli utenti riavviano un dispositivo, il conteggio delle modifiche viene reimpostato su zero.
avevo letto questo significa che la mia domanda avrebbe ricevuto UIPasteboardChangedNotification
notifiche una volta la mia applicazione è stata riattivata. Un'attenta lettura rivela, tuttavia, che è solo lo changeCount
che viene aggiornato quando l'app viene riattivata.
Mi sono occupato del tracciamento del numero di cartone changeCount
nella delegata della app e di aver pubblicato la notifica prevista quando ho trovato che lo changeCount
è stato modificato mentre l'app era in background.
Nell'interfaccia l'applicazione del delegato:
NSUInteger pasteboardChangeCount_;
E nella realizzazione dell'app del delegato:
- (BOOL)application:(UIApplication*)application
didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(pasteboardChangedNotification:)
name:UIPasteboardChangedNotification
object:[UIPasteboard generalPasteboard]];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(pasteboardChangedNotification:)
name:UIPasteboardRemovedNotification
object:[UIPasteboard generalPasteboard]];
...
}
- (void)pasteboardChangedNotification:(NSNotification*)notification {
pasteboardChangeCount_ = [UIPasteboard generalPasteboard].changeCount;
}
- (void)applicationDidBecomeActive:(UIApplication*)application {
if (pasteboardChangeCount_ != [UIPasteboard generalPasteboard].changeCount) {
[[NSNotificationCenter defaultCenter]
postNotificationName:UIPasteboardChangedNotification
object:[UIPasteboard generalPasteboard]];
}
}
fonte
2011-03-15 17:15:48
Hai mai ottenere questo risolto? Sto anche cercando di farlo. http://cl.ly/69a4 Se hai trovato la risposta, ti dispiacerebbe condividerlo con me? – Frankrockz