對於很多遺留代碼跨平臺的項目,我的可可應用程序只使用一個NSWindow與捕獲所有的鼠標事件,並提請我所有的應用程序圖形細節自定義的NSView。CFRunLoopRunInMode凍結主窗口
我需要實現本地模式的行爲,所以我用的主線程中:
CFRunLoopRunInMode(kCFRunLoopDefaultMode,0.01%,FALSE);
在語言環境中。如預期的那樣,函數在0.01秒後返回,其值爲kCFRunLoopRunTimedOut。然而,鼠標事件在那段時間內不再被自定義的NSView接收,所以我的應用程序看起來像被凍結了(顏色鼠標光標四處移動)。
定時器事件仍然到達自定義的NSView,而不是鼠標事件。
蘋果指定該功能可以遞歸調用。還有什麼我應該這樣做,NSView仍然收到用戶鼠標輸入?
在調用'CFRunLoopRunInMode'的行上放置一個斷點。當命中斷點時,複製堆棧跟蹤。編輯您的問題並粘貼到堆棧跟蹤中。 –