13

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

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

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

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

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

有任何想法吗?

4

2 回答 2

13

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

于 2010-05-12T10:13:57.440 回答
8

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

于 2010-05-12T15:24:59.467 回答