Я знаю, что уже немного поздно, чтобы ответить на этот вопрос, все еще для моих записей, и если кто-то еще ищет.
В моем приложении панели меню OS X возникла та же проблема.Я хотел, чтобы приложение наблюдало все состояния.
Причина:
Когда приложение теряет фокус, наблюдатель приостанавливается.
т.е.Когда приложение становится неактивным, оно вызывает метод
-(void)applicationDidResignActive:(NSNotification *)notification
и по умолчанию объект NSDistributedNotificationCenter приостанавливается.
Решение: я создал объект для NSDistributedNotificationCenter
NSDistributedNotificationCenter *center=[NSDistributedNotificationCenter defaultCenter];
, а затем, когда приложение теряет фокус, вызывается метод applicationDidResignActive , и внутри него объект NSDistributedNotificationCenter восстанавливается из приостановленного состояния путем отправки NO в метод setSuspended.
-(void)applicationDidResignActive:(NSNotification *)notification
{
[center setSuspended:NO];
}
и приложение начинает наблюдать, даже если оно теряет фокус.