nuk*_*ukl 0 cocoa objective-c nswindow
单击菜单项显示NSWindow,但仅限第一次,为什么这样,以及如何解决它?
-(IBAction)menuClick:(id)sender
{
if (!formsView) {
formsView = [[NSWindowController alloc] initWithWindowNibName:@"Forms"];
}
[formsView showWindow:self];
}
Run Code Online (Sandbox Code Playgroud)
这是我使用的相同代码,它的工作原理.问题必须在其他地方.
问题不在于代码,而是Interface Builder中的设置.(我还在使用Xcode 3.2,所以在我的界面中,构建器是一个单独的应用程序.)确保xib中File's Owner的类设置为NSWindowController并且它的window出口连接到窗口.
如果您不这样做并且为窗口设置了Visible At Launch,您将获得您描述的症状.这是因为initWithWindowNibName加载NIB文件并且由于Visible At Launch标志而显示窗口.但是如果你看一下window你NSWindowController实例的属性,你会发现它仍然是零.这就是为什么showWindow再次打电话时窗口不会重新显示的原因.它是IB中将窗口与控制器相关联的连接.
这是IB中的相关设置:

| 归档时间: |
|
| 查看次数: |
4152 次 |
| 最近记录: |