对于很多遗留代码跨平台的项目,我的可可应用程序只使用一个NSWindow与捕获所有的鼠标事件,并提请我所有的应用程序图形细节自定义的NSView。CFRunLoopRunInMode冻结主窗口
我需要实现本地模式的行为,所以我用的主线程中:
CFRunLoopRunInMode(kCFRunLoopDefaultMode,0.01%,FALSE);
在语言环境中。如预期的那样,函数在0.01秒后返回,其值为kCFRunLoopRunTimedOut。然而,鼠标事件在那段时间内不再被自定义的NSView接收,所以我的应用程序看起来像被冻结了(颜色鼠标光标四处移动)。
定时器事件仍然到达自定义的NSView,而不是鼠标事件。
苹果指定该功能可以递归调用。还有什么我应该这样做,NSView仍然收到用户鼠标输入?
在调用'CFRunLoopRunInMode'的行上放置一个断点。当命中断点时,复制堆栈跟踪。编辑您的问题并粘贴到堆栈跟踪中。 –