Mac için kod yazmayı öğreniyorum. Bir süredir bir Java adamım, bu yüzden yaşadığım problemin Kakao'nun basit bir yanlış anlaşılması olduğunu umuyorum.addGlobalMonitorForEventsMatchingMask yalnızca dönen fare konumu
-(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;
}
}
Bu fare tıklaması küresel düzeyde meydana geldiğinde söyle basit kanca:
Aşağıdaki kodu var. İşleyici çalışıyor, ancak gelenEvent'in içeriği hiçbir şeye ayarlanmış gibi görünmüyor. Bulabildiğim tek yararlı bilgiler, tıklatıldığında farenin yeri ve tıklatılan pencerenin windowId öğesidir.
Daha fazla bilgi edinememeli miyim? Monitörü doğru şekilde kurmuyor muyum? Hangi pencerenin tıklandığından emin olmak isterdim, ancak fare konumunu veya penceresini kullanışlı bir şeye dönüştürmenin bir yolunu bile bulamıyorum.
fare olaylarıyla harika çalışıyor, keyDown olayları için bir şeyler biliyor musunuz? –