如何从 Cocoa 中的另一个 NSWindowController 打开一个 NSWindowController

Jes*_*sus 3 macos cocoa objective-c xcode5

我正在 Xcode5 中为 MacOSX 开发可可应用程序,我想通过按一个按钮从当前窗口打开另一个窗口,这是我的代码:

- (IBAction)openWindow:(id)sender {

    WindowController *controllerWindow = [[WindowController alloc] initWithWindowNibName:@"WindowController"];
    [controllerWindow showWindow:nil];
    [[controllerWindow window] makeMainWindow];
    }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我可以看到窗口出现一秒钟,然后就消失了,如何正确执行此操作???

uch*_*aka 5

窗口和窗口控制器在此方法范围之外的任何地方都没有强引用。所以在那之后,他们被释放了。

通常,您会将窗口控制器添加到某个容器中,例如应用程序委托中的数组。该数组将保留窗口控制器。窗口控制器可以挂在窗口上。

将 action 方法放在应用程序委托中也是有意义的。您的按钮应该只向响应者链发送一个选择器。