Я пытаюсь контролировать глобальные события, поэтому я попытался добавить глобальный монитор. Однако я не мог получить информацию с этого монитора. Он активируется на событии, но возвращает NULL
.«addGlobalMonitorForEventsMatchingMask» возвращает «null»
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseDownMask) handler:^(NSEvent *incomingEvent){
NSLog(@"Window Number :%@",[[incomingEvent window] windowNumber]);
}];
Этот код находится в (id)init
методе в программе. Всякий раз, когда я нажимаю окно или вызываю событие, я получаю сообщение NSLOG с NULL в качестве информации о окне. Пример вывода выглядит следующим образом:
Window Number: (null)
Я не знаю, где я буду неправильно. Может ли кто-нибудь объяснить мне?
'windowNumber' для возврата' NSInteger', поэтому вам не следует использовать строку формата '% @', для которой требуется объект. Почему он выводится как '(null)', вероятно, потому, что 'windowNumber' возвращает 0, который будет интерпретироваться как NULL-указатель. –