gpt4 book ai didi

cocoa - NSWindowController的窗口立即释放

转载 作者:行者123 更新时间:2023-12-03 16:16:11 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序委托(delegate)中使用 NSWindowController 打开一个窗口。我创建了一个带有关联 NIB 的基本 NSWindowController 并尝试以这种方式显示窗口:

@implementation MyAppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Show the main window from a separate nib
MyWindowController * theWindowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"];
[theWindowController showWindow:self];
}
@end

当我启动应用程序时,MyWindowController 的窗口仅出现几分之一秒(似乎一启动就释放了)。

使用 ARC,我如何强制窗口停留在周围而不立即被刷新?我不使用 NSDocuments,但我希望能够同时使用其中许多 MyWindowController。

最佳答案

您需要向您的应用程序委托(delegate)(或将在您的应用程序的生命周期中保留的其他对象)添加一个保留 WindowConroller 的属性。例如:

@interface MyAppDelegate : NSObject

@property (strong, nonatomic) MyWindowController * windowController;

@end

然后在初始化窗口 Controller 时设置此属性。

@implementation MyAppDelegate

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{
// Show the main window from a separate nib
self.windowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"];
[theWindowController showWindow:self];
}

@end

关于cocoa - NSWindowController的窗口立即释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677043/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com