Делегат NSUserNotificationCenter не работает, когда приложение не находится в фокусе

У меня такой код.

[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification];
[[NSUserNotificationCenter defaultUserNotificationCenter] setDelegate:self];

Кроме того, я реализую userNotificationCenter:shouldPresentNotification:. Это работает нормально. Однако. когда окно приложения не сфокусировано, этот метод делегата не вызывается, а уведомление всегда присутствует.

Любая помощь?


person Kroderia    schedule 30.12.2013    source источник


Ответы (1)


Во-первых, вы должны установить делегата перед отправкой сообщения -deliverNotification:. Если вы этого не сделаете, возможно, ваш метод делегата не будет запущен, даже когда это должно быть.

Во-вторых, в документации для -userNotificationCenter:shouldPresentNotification:, в нем указано:

userNotificationCenter:shouldPresentNotification:

Отправляется делегату, когда центр уведомлений пользователей решил не представлять ваше уведомление.

то есть вы только увидите, что этот метод вызывается, когда NSUserNotificationCenter уже решил не показывать ваше уведомление. Если он решил, что должен показать это, он не будет спрашивать.

person alastair    schedule 10.01.2014
comment
Спасибо, я только что нашел этот ответ. - person Kroderia; 24.01.2014