Tôi đã gặp vấn đề tương tự. Theo tài liệu UIPasteboard Class Reference cho changeCount
tài sản (nhấn mạnh là của tôi):
Bất cứ khi nào nội dung của một sự thay đổi-đặc biệt tông, khi mục tông được bổ sung, sửa đổi, hoặc increments loại bỏ-UIPasteboard giá trị của tài sản này. Sau khi tăng số lượng thay đổi, UIPasteboard đăng thông báo có tên UIPasteboardChangedNotification (để bổ sung và sửa đổi) và UIPasteboardRemovedNotification (để xóa). ... Lớp này cũng cập nhật số thay đổi khi một ứng dụng kích hoạt lại và một ứng dụng khác đã thay đổi nội dung của bảng. Khi người dùng khởi động lại thiết bị, số lượng thay đổi được đặt lại về 0.
Tôi đã đọc điều này có nghĩa là ứng dụng của tôi sẽ nhận được thông báo UIPasteboardChangedNotification
sau khi ứng dụng của tôi được kích hoạt lại. Tuy nhiên, một cách đọc cẩn thận cho thấy rằng nó chỉ là changeCount
được cập nhật khi ứng dụng được kích hoạt lại.
Tôi đã giải quyết vấn đề này bằng cách theo dõi số changeCount
của đại lý trong ứng dụng và đăng thông báo dự kiến khi tôi tìm thấy changeCount
đã được thay đổi trong khi ứng dụng ở chế độ nền.
Trong giao diện ứng dụng đại biểu của:
NSUInteger pasteboardChangeCount_;
Và trong việc thực hiện các ứng dụng đại biểu của:
- (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]];
}
}
Nguồn
2011-03-15 17:15:48
Bạn đã bao giờ có được điều này được giải quyết? Tôi cũng đang cố gắng thực hiện điều này. http://cl.ly/69a4 Nếu bạn đã tìm thấy câu trả lời, bạn có muốn chia sẻ nó với tôi không? – Frankrockz