Cocoa 复制NSApp-runModalForWindow:

Cocoa 复制NSApp-runModalForWindow:,cocoa,nswindow,Cocoa,Nswindow,我想复制NSApp的-runModalForWindow:方法,而不让应用程序的其余部分变得无用。我想使用NSWindow将用户锁定一段时间,让我的应用程序执行一系列操作,然后关闭NSWindow 我知道如何单独打开NSWindow,但禁用其他打开的窗口是一项挑战。这是可以实现的吗 提前谢谢。 Ricky.-[NSApplication beginModalSessionForWindow:朋友们应该做以下几件事: NSModalSession session = [NSApp beginMod

我想复制NSApp的-runModalForWindow:方法,而不让应用程序的其余部分变得无用。我想使用NSWindow将用户锁定一段时间,让我的应用程序执行一系列操作,然后关闭NSWindow

我知道如何单独打开NSWindow,但禁用其他打开的窗口是一项挑战。这是可以实现的吗

提前谢谢。
Ricky.

-[NSApplication beginModalSessionForWindow:
朋友们应该做以下几件事:

NSModalSession session = [NSApp beginModalSessionForWindow:modalWindow];
while (1) {
    if ([NSApp runModalSession:session] != NSRunContinuesResponse)
        break;
    // do stuff
}
[NSApp endModalSession:session];

注意,在后台做“一堆事情”通常是个好主意。E使用Grand Central Dispatch。

当然,如果您在后台线程上执行其他操作,无论是使用GCD还是直接使用线程,那么您最好使用
runModalForWindow: