Jam*_*enn 11 macos xcode objective-c
所以我试图像这样开一个新的NSWindow:
NSWindowController *winCon = [[NSWindowController alloc] initWithWindowNibName:@"NewWindow"];
[winCon showWindow:self];
Run Code Online (Sandbox Code Playgroud)
当我这样做时,新窗口会在屏幕上闪烁,就像它出现一样,然后很快消失.我知道我在IB和所有内容中都正确引用了我的窗口.它就像它想要显示窗口,然后它几乎立即被解除分配或奇怪的东西.任何帮助将不胜感激.
Ext*_*ire 18
首先,初始化程序的名称不是-initWithNibName:,但是-initWithWindowNibName:.
其次,如果您使用ARC,这是正确的,因为您的实例没有强大的参考,所以您的窗口会变得很糟糕NSWindowController.当方法结束时,您的参考也是如此.
例如,如果您要在应用程序委托接口中执行此操作:
@property(strong) NSWindowController *winCon;
Run Code Online (Sandbox Code Playgroud)
并在您的实现文件中合成它:
@synthesize winCon;
Run Code Online (Sandbox Code Playgroud)
然后你可以像这样设置:
self.winCon = [[NSWindowController alloc] initWithWindowNibName:@"NewWindow"];
[self.winCon showWindow:self];
Run Code Online (Sandbox Code Playgroud)
现在你的窗户不会消失.应用程序关闭时将释放窗口控制器.
| 归档时间: |
|
| 查看次数: |
4523 次 |
| 最近记录: |