单击菜单项显示一个NSWindow,但这只是第一次,为什么会这样,以及如何修复它?
-(IBAction)menuClick:(id)sender
{
if (!formsView) {
formsView = [[NSWindowController alloc] initWithWindowNibName:@"Forms"];
}
[formsView showWindow:self];
}发布于 2011-08-06 06:03:18
这与我使用的代码是相同的,并且它是有效的。问题一定出在别的地方。
问题不在于代码,而在于接口生成器中的设置。(我仍然在使用Xcode3.2,所以在我的世界中,Interface builder是一个单独的应用程序。)确保xib中File's Owner的类被设置为NSWindowController,并且它的window插座连接到窗口。
如果您不这样做,并且为窗口设置了在启动时可见,那么您将得到您所描述的症状。这是因为initWithWindowNibName加载了NIB文件,并且由于启动时可见标志而显示窗口。但是,如果查看NSWindowController实例的window属性,就会发现它仍然是空的。这就是当您再次调用showWindow时窗口不会重新显示的原因。IB中的连接将窗口与控制器关联起来。
Here's a project that has IB set up correctly.
IB中的相关设置如下:

发布于 2014-12-01 22:38:40
[window makeKeyAndOrderFront:self]发布于 2011-08-06 06:08:19
您是否在该窗口的Interface Builder (非Xcode4中内置)中取消选中了“关闭时释放”复选框?
https://stackoverflow.com/questions/6962531
复制相似问题