Показать лист, но все же пусть мое основное приложение работает - PullRequest
0 голосов
/ 13 февраля 2012

Метод 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];

1 Ответ

0 голосов
/ 13 февраля 2012

Есть ли причина, по которой NSThread нельзя использовать? Это очевидный ответ ...

...