Как мне открыть окно NSW и сделать окно выделенным и в фокусе? - PullRequest
13 голосов
/ 12 мая 2010

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

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

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

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

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

Есть идеи?

Ответы [ 2 ]

13 голосов
/ 12 мая 2010

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

8 голосов
/ 12 мая 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...