Я пытаюсь использовать новый NSUserNotificationCenter Mountain Lion для моего приложения (что на самом деле не так сложно). Почтовые уведомления работают как прелесть через
NSUserNotification *userNotification = [[NSUserNotification alloc] init];
userNotification.title = @"Some title";
userNotification.informativeText = @"Some text";
[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:userNotification];
Тем не менее, я хотел бы отклонить все уведомления, которые отображаются на экране после того, как приложение получит фокус. Например. как это делает приложение "Новые сообщения". Когда новые сообщения принимаются в фоновом режиме, отображаются уведомления. Когда приложение снова активируется, они автоматически отключаются и исчезают с экрана и из Центра уведомлений.
Чтобы воспроизвести это, я зарегистрировал метод для уведомления NSApplicationDidBecomeActiveNotification
, которое также получило название успешно. Там я вызываю [NSUserNotificationCenter defaultUserNotificationCenter] removeAllDeliveredNotifications]
.
Это, однако, приводит к тому, что уведомления, которые были собраны в Центре уведомлений, удаляются, а соответствующие "пузырьки", отображаемые в верхнем правом углу, все еще отображаются.
Итерация всех отправленных уведомлений и их удаление каждый из них имеет точно такой же эффект, что и использование scheduleNotification
вместо deliverNotification
.
Я один из тех, кто это испытывает, или мне не хватает чего-то, чтобы программно отказаться от части экрана и части Центра уведомлений?