首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >显示NSWindow

显示NSWindow
EN

Stack Overflow用户
提问于 2011-08-06 04:55:32
回答 3查看 5K关注 0票数 1

单击菜单项显示一个NSWindow,但这只是第一次,为什么会这样,以及如何修复它?

代码语言:javascript
复制
-(IBAction)menuClick:(id)sender
{   
    if (!formsView) {
        formsView = [[NSWindowController alloc] initWithWindowNibName:@"Forms"];
    }

    [formsView showWindow:self];
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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中的相关设置如下:

票数 6
EN

Stack Overflow用户

发布于 2014-12-01 22:38:40

代码语言:javascript
复制
[window makeKeyAndOrderFront:self]
票数 3
EN

Stack Overflow用户

发布于 2011-08-06 06:08:19

您是否在该窗口的Interface Builder (非Xcode4中内置)中取消选中了“关闭时释放”复选框?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6962531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档