如何打开NSWindow并选择并关注窗口?

时间:2010-05-12 10:02:56

标签: objective-c cocoa macos nswindow nswindowcontroller

我正在尝试使用以下代码打开NSWindow:

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

窗口打开正常但前一个窗口仍然是mainWindow并且是焦点。我尝试了以下代码来强制主窗口,它不起作用。窗口仍然有一个禁用的标题栏,并且不接受关键事件等。

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

我似乎能够让前一个窗口失去焦点的唯一方法是在调用showWindow后关闭窗口:[[NSApp mainWindow] close];

有什么想法吗?

2 个答案:

答案 0 :(得分:13)

makeKeyAndOrderFront:是要走的路。您确定self.windowwindow是否引用同一个对象?

答案 1 :(得分:8)

我通过将WindowController分配给nib文件所有者来解决了这个问题,而不是在nib中有一个单独的NSWindowController对象。