所以我试图像这样打开一个新的NSWindow:
NSWindowController *winCon = [[NSWindowController alloc] initWithWindowNibName:@"NewWindow"];
[winCon showWindow:self];
当我执行此操作时,新窗口将在屏幕上闪烁,如其中所示,然后迅速消失。我知道我的窗口已在IB和所有内容中正确引用。就像它想显示窗口一样,但是随后它立即被释放或变得很奇怪。任何帮助将不胜感激。
最佳答案
首先,初始化器的名称不是-initWithNibName:
,而是-initWithWindowNibName:
。
其次,如果您使用的是ARC,那么这是正确的,因为您没有对NSWindowController
实例的强大引用,所以您的窗口变得模糊了。该方法结束后,您的引用也将结束。
例如,如果要在应用程序委托(delegate)接口(interface)中执行此操作,请执行以下操作:
@property(strong) NSWindowController *winCon;
并将其合成到您的实现文件中:
@synthesize winCon;
然后,您可以像这样设置:
self.winCon = [[NSWindowController alloc] initWithWindowNibName:@"NewWindow"];
[self.winCon showWindow:self];
现在您的窗口不会消失。当应用程序关闭时,窗口 Controller 将被释放。
关于objective-c - NSWindowController showWindow : flashes the window,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13618382/