我正在编写一个应用程序,当切换(从键盘输入)时,使用dispatch_sync_f
对主线程执行阻塞操作。我在传递给执行一些例程的dispatch_sync_f
的函数内部有一个while循环。为了确保在此循环中处理窗口事件,我编写了以下内容并将其传递。
event = [NSApp nextEventMatchingMask:NSAnyEventMask
untilDate:nil
inMode:NSDefaultRunLoopMode
dequeue:YES];
[NSApp sendEvent:event]
但是,当我尝试全屏(绿色按钮)时,它会一直停留,直到此阻塞功能未被遮挡。我以为我正在传递所有事件,处理任何键盘/鼠标输入到窗口。但在这种情况下,全屏可能不是一个事件。有没有办法检测全屏事件并在主线程被阻止时将其传递给窗口?