Я запускаю пользовательский NSWindowController в качестве модального окна.модальное окно не закрывается
Сначала я показываю это так:
ProgressWindow *pWin = [[ProgressWindow alloc] initWithWindowNibName:@"ProgressWindow" andXmlContent:nil];
[NSApp runModalForWindow:[pWin window]];
И тогда я хочу, чтобы закрыть его изнутри NSWindowController в ProgressWindow в. Для этого я поставил в windowDidLoad функции следующего кода (только для проверки):
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:2]];
[self testMethod];
Как и ожидалось, он вызывает TestMethod через 2 секунды Метод должен закрыть модальное окно, но я, кажется, не найти способ сделать это. Я пробовал [NSApp stopModal]
, [NSApp abortModal]
, [self close]
, делая его листом и звонящим [self.window orderOut:nil];[NSApp endSheet:self.window];
, но ничего не работает. Ничего не происходит, или окно снова открывается в другом месте. Я не знаю, почему это происходит, код инициализации вызывается только один раз.
Кто-нибудь знает, как его закрыть ???
Как сказано, это не проблема. testMethod вызывается через 2 секунды. Кроме того, runUntilDate делает обратное, он позволяет данному RunLoop работать в течение x секунд до того, как текущий поток продолжит работу. Предоставляя время для обновления GUI и выполнения методов взаимодействия. – Daniel