Реплицировать NSApp -runModalForWindow: - PullRequest
0 голосов
/ 27 ноября 2011

Я хочу скопировать NSApp -runModalForWindow: метод, не оставляя остальную часть моего приложения бесполезной. Я хочу заблокировать пользователя на некоторое время с помощью NSWindow, заставить мое приложение сделать что-то, а затем закрыть NSWindow.

Я знаю, как открыть NSWindow самостоятельно, но отключение других открытых окон является проблемой. Это достижимо?

Спасибо заранее. Рикки.

1 Ответ

0 голосов
/ 27 ноября 2011

-[NSApplication beginModalSessionForWindow:] и друзья должны сделать трюк:

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

Обратите внимание, что, как правило, хорошей идеей является делать свои "вещи" в фоновом режиме, то есть с помощью Grand Central Dispatch.

...