我正在 Xcode5 中为 MacOSX 使用 cocoa 开发一个应用程序,我想通过按按钮从当前窗口打开另一个窗口,这是我的代码:
- (IBAction)openWindow:(id)sender {
WindowController *controllerWindow = [[WindowController alloc] initWithWindowNibName:@"WindowController"];
[controllerWindow showWindow:nil];
[[controllerWindow window] makeMainWindow];
}
到目前为止,我可以看到窗口出现一秒钟,然后就消失了,如何正确执行此操作???
窗口和窗口控制器在该方法范围之外的任何地方都没有强引用。 所以在那之后,他们就被释放了。
通常,您会将窗口控制器添加到某个容器中,例如应用程序委托中的数组。 该数组将保留窗口控制器。 窗户控制器可以挂在窗户上。
将操作方法放在应用程序委托中也是有意义的。该按钮应该只向响应者链发送一个选择器(响应者链的松散耦合很可爱)。
用这个..
创建一个需要打开的新 .h 和 .m 文件,作为 NewWindowController (例如)及其 .xib
单击任何按钮,打开新定义的窗口,只需分配、实例化和呈现..
NewWindowController *controllerWindow = [[NewWindowController alloc] initWithWindowNibName:@"NewWindowController"];
[controllerWindow showWindow:self];