Подтвердить что ты не робот

Как открыть NSWindow и выбрать окно в фокусе?

Я пытаюсь открыть NSWindow, используя следующий код:

NSWindowController *window = [[NSWindowController alloc] initWithWindowNibName:@"MainWindow"];
[window showWindow:nil];

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

[self.window makeKeyAndOrderFront:self];
[self.window makeMainWindow];

Единственный способ, с помощью которого я могу получить предыдущее окно, чтобы потерять фокус, - это закрыть окно после вызова showWindow: при закрытии [[NSApp mainWindow]);

Любые идеи?

4b9b3361

Ответ 1

makeKeyAndOrderFront: - путь. Вы уверены, что self.window и window ссылаются на один и тот же объект?

Ответ 2

Я решил проблему, назначив WindowController файловому владельцу nib вместо того, чтобы иметь отдельный объект NSWindowController в nib.