Como faço para abrir uma NSWIDOW e selecionar a janela e em foco?
-
26-09-2019 - |
Pergunta
Estou tentando abrir uma NSWIDOW usando o seguinte código:
NSWindowController *window = [[NSWindowController alloc] initWithWindowNibName:@"MainWindow"];
[window showWindow:nil];
A janela abre ok, mas a janela anterior ainda é a MainWindow e em foco. Eu tentei o código a seguir para forçar a janela principal e não funciona. A janela ainda tem uma barra de título desativada e não está aceitando eventos importantes etc.
[self.window makeKeyAndOrderFront:self];
[self.window makeMainWindow];
A única maneira de conseguir conseguir que a janela anterior perdesse o foco é se eu fechar a janela depois de ligar para o ShowWindow: com [[NSAPP MainWindow] Close];
Alguma ideia?
Solução
makeKeyAndOrderFront:
é o caminho a percorrer. Você está certo disto self.window
e window
consulte o mesmo objeto?
Outras dicas
Resolvi o problema atribuindo o WindowsController ao proprietário do arquivo NIB, em vez de ter um objeto NSWIDOWController separado dentro da ponta.