2015-04-06 98 views
0

在收到鼠标按下事件后,我的NSWindow被冻结。我无法捕捉哪些线程在Xcode中挂起。我使用下面的代码来模拟鼠标事件:NSWindow在模拟鼠标按下事件时被冻结

CGEventSourceRef eventSource = CGEventSourceCreate(kCGEventSourceStateHIDSystemState); 
CGEventRef event = CGEventCreateMouseEvent(eventSource, eventType, mouseLocation, mouseButton); 
CGEventPost(kCGHIDEventTap, event); 
CFRelease(event); 

我怎样才能解决这个问题?

+0

如果我在OS X默认应用程序(如系统首选项,磁盘实用程序等)上发送鼠标向下/向上事件。这里它工作正常。这意味着我必须在我的应用程序窗口中处理任何事情? – boopathy 2015-04-06 06:53:24

回答

0

我已经将runloop模式从NSDefaultRunLoopMode更改为NSRunLoopCommonModes,它的工作原理。