首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSWindowController showWindow:闪烁窗口

NSWindowController showWindow:闪烁窗口
EN

Stack Overflow用户
提问于 2012-11-29 11:32:19
回答 1查看 4.9K关注 0票数 11

因此,我尝试打开一个新的NSWindow,如下所示:

代码语言:javascript
复制
NSWindowController *winCon = [[NSWindowController alloc] initWithWindowNibName:@"NewWindow"];
[winCon showWindow:self];

当我这样做时,新窗口在屏幕上闪烁,如中所示,它出现后很快就消失了。我知道我的窗口在IB和所有东西中都被正确引用了。就像它想要显示窗口一样,但随后它被释放了,或者几乎立即发生了一些奇怪的事情。任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-29 12:35:38

首先,初始化器的名称不是-initWithNibName:,而是-initWithWindowNibName:

其次,如果你使用的是ARC,你的窗口就会变得模糊,因为你的NSWindowController实例没有一个强引用。当方法结束时,您的引用也会结束。

比方说,如果您要在应用程序委托接口中执行此操作:

代码语言:javascript
复制
@property(strong) NSWindowController *winCon;

并将其合成到您的实现文件中:

代码语言:javascript
复制
@synthesize winCon;

然后你可以像这样设置:

代码语言:javascript
复制
self.winCon = [[NSWindowController alloc] initWithWindowNibName:@"NewWindow"];
[self.winCon showWindow:self];

现在你的窗口不会消失了。当应用程序关闭时,窗口控制器将被释放。

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

https://stackoverflow.com/questions/13618382

复制
相关文章

相似问题

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