Предупреждение о рекомендуемом решении:
Этот код приводит к расточительным и бессмысленным накладным расходам:
for (;;) {
if ([NSApp runModalSession:session] != NSRunContinuesResponse)
break;
}
Этот код скопирован прямо со страницы документации Apple - ноон предназначен для того, чтобы показать разработчику , где можно вставить значимый код для фонового выполнения во время работы модального режима.То есть, между пробелом и закрывающей скобкой должен быть какой-то код.Но в примере не показан реальный код - и запуск его таким образом просто заставляет ваше приложение многократно опрашивать сеанс до его завершения.Это как двухлетний ребенок на заднем сиденье машины в автомобильной поездке, спрашивающий: «Мы уже здесь? Мы еще там? Мы там еще? ...»
Если вы простохотите простого модального исполнения, когда ваше приложение представляет модальное окно и приостанавливает обработку главного / фонового окон до завершения модального режима, используйте это:
[NSApp runModalForWindow: self.window];
... и затем выходите из модального сеанса, когда окно закрываетсяопустив это в ваш подкласс контроллера окна:
- (void)windowWillClose:(NSNotification *)notification {
[NSApp stopModal];
}