我正在尝试使用以下代码打开NSWindow:
NSWindowController *window = [[NSWindowController alloc] initWithWindowNibName:@"MainWindow"];
[window showWindow:nil];
窗口打开正常但前一个窗口仍然是mainWindow并且是焦点。我尝试了以下代码来强制主窗口,它不起作用。窗口仍然有一个禁用的标题栏,并且不接受关键事件等。
[self.window makeKeyAndOrderFront:self];
[self.window makeMainWindow];
我似乎能够让前一个窗口失去焦点的唯一方法是在调用showWindow后关闭窗口:[[NSApp mainWindow] close];
有什么想法吗?
答案 0 :(得分:13)
makeKeyAndOrderFront:
是要走的路。您确定self.window
和window
是否引用同一个对象?
答案 1 :(得分:8)
我通过将WindowController分配给nib文件所有者来解决了这个问题,而不是在nib中有一个单独的NSWindowController对象。