Метод loadFile
запускает NSTimer
для загрузки файла процесса с течением времени без блокировки приложения в цикле while.Этот таймер не срабатывает с первым битом кода, а со вторым битом.Проблема в том, что второй бит показывает лист как окно стиля панели, а не как лист.
Как получить лист, который все еще может работать?
Показать лист, норабота не выполняется
[self.sheetView loadFile:filename];
[[NSApplication sharedApplication] beginSheet: self.sheetView
modalForWindow: self.window
modalDelegate: self
didEndSelector: nil
contextInfo: nil];
[[NSApplication sharedApplication] runModalForWindow: self.sheetView];
Показать окно и работа выполнена
NSModalSession session = [NSApp beginModalSessionForWindow:self.sheetView];
NSInteger result = NSRunContinuesResponse;
[self.sheetView loadFile:filename];
// Loop until some result other than continues:
while (result == NSRunContinuesResponse)
{
// Run the window modally until there are no events to process:
result = [NSApp runModalSession:session];
// Give the main loop some time:
[[NSRunLoop currentRunLoop] limitDateForMode:NSDefaultRunLoopMode];
}
[NSApp endModalSession:session];