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