复制NSApp -runModalForWindow:

时间:2011-11-27 10:03:42

标签: cocoa nswindow

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

我知道如何打开NSWindow,但禁用其他开放的窗户是挑战。这可以实现吗?

提前致谢。 瑞奇。

1 个答案:

答案 0 :(得分:0)

-[NSApplication beginModalSessionForWindow:]和朋友们应该这样做:

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

请注意,在背景中做一堆事情通常是个好主意,我。即使用Grand Central Dispatch。