Поддерживает ли Snow Leopard / Lion kEventSystemTimeDateChanged? - PullRequest
1 голос
/ 07 сентября 2011

Мне нужно получать уведомление, когда изменения вносятся в панель настроек системы. Из документа Google я нашел kEventSystemTimeDateChanged, и он работал в Leopard. Событие не запускается при смене часов. Нужно уточнить, поддерживает ли Snow Leopard и Lion kEventSystemTimeDateChanged.

Фрагмент моего кода приведен ниже.

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
        [self SystemTimeChangeHandler]; 
}



OSStatus DateChangeEventHandler(EventHandlerCallRef nextHandler, EventRef theEvent, void *userData) 
{
NSLog(@"Event Fired!\n");    
return 0;
}


- (void)SystemTimeChangeHandler
{

NSLog(@"SystemTimeChangeHandler");
EventTypeSpec eventType;

eventType.eventClass = kEventClassSystem;

eventType.eventKind = kEventSystemTimeDateChanged;


EventHandlerUPP eventHandlerUPP =
NewEventHandlerUPP(DateChangeEventHandler);

EventHandlerRef eventHandlerRef = NULL;

(void)InstallApplicationEventHandler(
                                     eventHandlerUPP,
                                     1,
                                     &eventType,
                                     self,
                                     &eventHandlerRef);
}

1 Ответ

1 голос
/ 07 сентября 2011

В качестве обходного пути, в Mac OS X 10.6 или более поздней версии вы можете зарегистрироваться для NSSystemClockDidChangeNotification. В документации не ясно, находится ли он в локальном центре уведомлений по умолчанию или в распределенном центре уведомлений по умолчанию.

...