Miałem ten sam problem. Zgodnie z dokumentacją UIPasteboard Class Reference dla właściwości changeCount
(podkreślenie moje):
Gdy zawartość zmienia się specyficznie kartonowych gdy przedmioty kartonowych są dodawane, modyfikowane lub usuwane-UIPasteboard przyrostów wartości tej nieruchomości. Po zwiększeniu liczby zmian UIPasteboard wysyła powiadomienia o nazwie UIPasteboardChangedNotification (dla dodatków i modyfikacji) oraz UIPasteboardRemovedNotification (dla przeprowadzek). ... Klasa aktualizuje także liczbę zmian , gdy aplikacja ponownie się uaktywni, a inna aplikacja zmieni zawartość spisu. Gdy użytkownicy zrestartują urządzenie, licznik zmian zostanie zresetowany do zera.
Przeczytałem to w ten sposób, że moja aplikacja otrzyma powiadomienie o UIPasteboardChangedNotification
po ponownym uruchomieniu mojej aplikacji. Uważna lektura ujawnia jednak, że tylko aktualizacja changeCount
jest aktualizowana po ponownym uruchomieniu aplikacji.
Zajmowałem się tym, śledząc plik changeCount
w delegacji do mojej aplikacji i publikując oczekiwane powiadomienie, gdy stwierdziłem, że changeCount
został zmieniony, gdy aplikacja była w tle.
W interfejsie App delegata:
NSUInteger pasteboardChangeCount_;
A w realizacji App delegata:
- (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]];
}
}
Czy kiedykolwiek się to rozwiązać? Próbuję też to osiągnąć. http://cl.ly/69a4 Jeśli znalazłeś odpowiedź, czy mogłabyś mi ją udostępnić? – Frankrockz