dispatch_sync_f阻止窗口全屏操作

时间:2016-08-18 22:57:32

标签: objective-c cocoa macos-sierra

我正在编写一个应用程序,当切换(从键盘输入)时,使用dispatch_sync_f对主线程执行阻塞操作。我在传递给执行一些例程的dispatch_sync_f的函数内部有一个while循环。为了确保在此循环中处理窗口事件,我编写了以下内容并将其传递。

event = [NSApp nextEventMatchingMask:NSAnyEventMask 
                                     untilDate:nil
                                     inMode:NSDefaultRunLoopMode 
                                     dequeue:YES];

[NSApp sendEvent:event]

但是,当我尝试全屏(绿色按钮)时,它会一直停留,直到此阻塞功能未被遮挡。我以为我正在传递所有事件,处理任何键盘/鼠标输入到窗口。但在这种情况下,全屏可能不是一个事件。有没有办法检测全屏事件并在主线程被阻止时将其传递给窗口?

0 个答案:

没有答案