【问题标题】:How to open an NSWindowController from another NSWindowController in Cocoa如何在 Cocoa 中从另一个 NSWindowController 打开一个 NSWindowController
【发布时间】:2014-07-03 06:24:23
【问题描述】:

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

- (IBAction)openWindow:(id)sender {

    WindowController *controllerWindow = [[WindowController alloc] initWithWindowNibName:@"WindowController"];
    [controllerWindow showWindow:nil];
    [[controllerWindow window] makeMainWindow];
    }

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

【问题讨论】:

标签: objective-c macos cocoa xcode5


【解决方案1】:

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

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

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

【讨论】:

  • 别忘了先初始化数组!
【解决方案2】:

使用这个..

创建一个需要打开的新 .h 和 .m 文件,作为 NewWindowController(例如)及其 .xib

点击任何按钮,打开新定义的窗口,只需分配、实例化和呈现..

NewWindowController *controllerWindow = [[NewWindowController alloc] initWithWindowNibName:@"NewWindowController"];
[controllerWindow showWindow:self];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    相关资源
    最近更新 更多