addGlobalMonitorForEventsMatchingMask возвращает только позицию мыши

Я пытаюсь научиться программировать для Mac. Я какое-то время занимаюсь Java, так что надеюсь, что проблема, с которой я столкнулся, заключается в простом непонимании Какао.

У меня есть следующий код:

-(IBAction)beginEventMonitor:(id)sender {
  _eventMonitor = [NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseUpMask)
  handler:^(NSEvent *incomingEvent) {
    //NSWindow *targetWindowForEvent = [incomingEvent window];
    NSLog(@"Got a mouse click event at %@", NSStringFromPoint([incomingEvent locationInWindow]));
    }];
}

-(IBAction)stopEventMonitor:(id)sender {
  if (_eventMonitor) {
    [NSEvent removeMonitor:_eventMonitor];
    _eventMonitor = nil;
  }
}

Это простой крючок, чтобы сказать мне когда щелчок мыши происходит на глобальном уровне. Обработчик работает, но похоже, что для содержимого incomingEvent ничего не установлено. Единственная полезная информация, которую я могу найти, - это местоположение мыши во время щелчка и windowId окна, в котором щелкнули.

Не следует ' • Могу ли я получить дополнительную информацию? Я неправильно настраиваю монитор? Я действительно хотел бы знать, в каком окне был выполнен щелчок, но я даже не могу найти способ превратить местоположение мыши или windowId во что-то полезное.

5
задан Chad 15 January 2011 в 22:56
поделиться