我正在尝试监控全局事件,所以我尝试添加全局监视器。但是,我无法从此监视器获取任何信息。它会在事件中激活,但会返回NULL
。
[NSEvent addGlobalMonitorForEventsMatchingMask:(NSLeftMouseDownMask) handler:^(NSEvent *incomingEvent){
NSLog(@"Window Number :%@",[[incomingEvent window] windowNumber]);
}];
此代码位于程序中的(id)init
方法中。每当我单击一个窗口或导致事件时,我都会获得带有NULL的NSLOG消息作为窗口信息。
样本输出如下:
Window Number: (null)
我不知道我哪里出错了。有人可以解释一下吗?
答案 0 :(得分:0)
我已经解决了这个问题。我面临的问题是由于
NSLog(@"Window Number :%@",[[incomingEvent window] windowNumber]);
如果您想显示所点击窗口的详细信息,请使用帖子https://stackoverflow.com/a/4704158/1249876
中所述的CGWindow.h
例程
虽然从逻辑上讲,windowNumber
是NSWindow
类的一种方法,但在这种情况下它不会返回任何输出,这有点违反直觉。