如何在applicationDidFinishLaunching中启动第二个窗口

时间:2015-10-20 15:15:38

标签: objective-c macos cocoa

我想在应用程序打开时启动调试日志窗口。以下是我计划如何做到这一点:

-(void)applicationDidFinishLaunching:(NSNotification *)notification
{
    LogWindowController *lwc = [[LogWindowController alloc] initWithWindowNibName:@"LogWindow"];
    [lwc showWindow:self];
    [[lwc logWindow] orderFront:self];
}

创建并运行日志窗口,例如在“窗口”菜单中可用。但它在任何地方都看不到。

如果我在响应菜单项时运行相同的代码,则日志窗口会按预期显示。

为什么会发生这种情况,如何在应用程序启动时打开我的日志窗口?

1 个答案:

答案 0 :(得分:3)

没有任何东西对这个窗口控制器有强烈的引用。在此功能结束时,lwc将被释放,这将立即关闭窗口(在绘制周期发生之前,所以你不会看到闪光灯或任何东西)。

您需要将lwc存储在strong属性中,以便在您希望它发布之前不会将其释放。