11

所以我试图像这样打开一个新的 NSWindow:

NSWindowController *winCon = [[NSWindowController alloc] initWithWindowNibName:@"NewWindow"];
[winCon showWindow:self];

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

4

1 回答 1

18

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

其次,如果您使用 ARC,这是正确的,您的窗口会变得模糊,因为您的NSWindowController. 当方法结束时,您的参考也会结束。

例如,如果您要在应用程序委托界面中执行此操作:

@property(strong) NSWindowController *winCon;

并在您的实现文件中合成它:

@synthesize winCon;

然后你可以这样设置:

self.winCon = [[NSWindowController alloc] initWithWindowNibName:@"NewWindow"];
[self.winCon showWindow:self];

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

于 2012-11-29T04:35:37.513 回答