How do I open an NSWindow and have the window selected and in focus?

Luke picture Luke · May 12, 2010 · Viewed 12k times · Source

I am trying to open a NSWindow using the following code:

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

The window opens okay but the previous window is still the mainWindow and in focus. I have tried the following code to force the main window and it doesn't work. The window still has a disabled title bar and isn't accepting key events etc.

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

The only way I seem to be able to get the previous window to lose focus is if I close the window after calling showWindow: with [[NSApp mainWindow] close];

Any ideas?

Answer

Nikolai Ruhe picture Nikolai Ruhe · May 12, 2010

makeKeyAndOrderFront: is the way to go. Are you sure that self.window and window refer the same object?