点击菜单项显示NSWindow,但只是第一次,为什么是这样,以及如何解决它?显示NSWindow
-(IBAction)menuClick:(id)sender
{
if (!formsView) {
formsView = [[NSWindowController alloc] initWithWindowNibName:@"Forms"];
}
[formsView showWindow:self];
}
点击菜单项显示NSWindow,但只是第一次,为什么是这样,以及如何解决它?显示NSWindow
-(IBAction)menuClick:(id)sender
{
if (!formsView) {
formsView = [[NSWindowController alloc] initWithWindowNibName:@"Forms"];
}
[formsView showWindow:self];
}
这是我使用的相同的代码,它的工作原理。问题必须在别处。
的问题是不是代码,它在界面生成器设置。 (我仍在使用的Xcode 3.2所以在我的世界界面生成器是一个单独的应用程序。)确保对文件的所有者在厦门国际银行类设置为NSWindowController
和其window
出口连接到窗口。
如果你不这样做,可见在启动被设置为窗口,你会得到完全你描述的症状。这是因为initWithWindowNibName
加载了NIB文件,并且由于可见在启动标志而显示窗口。但是,如果您查看NSWindowController
实例的window
属性,则会看到它仍然为零。这就是为什么当您再次拨打showWindow
时窗口不会重新显示。 IB中的连接将窗口与控制器相关联。
Here's a project that has IB set up correctly.
下面是IB的相关设置:
[window makeKeyAndOrderFront:self]
你能提供与此代码的作品简单的示例应用程序,请? – nukl
我会通过编辑我的答案来回复此问题。 – SSteve
是的,它现在有效。太好了,谢谢! – nukl