OS X第二个窗口不会保持打开状态

时间:2014-09-08 19:13:49

标签: macos nswindowcontroller

我想打开第二个窗口,作为我应用主窗口中某些字段的内容编辑器。我用自己的笔尖创建了一个自定义的NSWindowController(称为ItemEditor)。

我用以下代码打开新窗口:

ItemEditor *editor = [[ItemEditor alloc] initWithWindowNibName:@"ItemEditor"];
[editor showWindow:nil];
[editor.window makeKeyAndOrderFront:nil];

新窗口会立即显示,然后立即消失。调用ItemEditor的initWithWindow:windowDidLoad,但windowWillClose:不是。

谁能告诉我这里发生了什么?我很难过。

1 个答案:

答案 0 :(得分:0)

发生的事情是你正在使用ARC ......并且在创建“editor”对象后没有任何内容。这就是它一旦被创造就消失的原因。

您需要在父窗口控制器中将“editor”设为“strong”属性。

换句话说,在父视图控制器的.h文件中声明它:

@property (strong) ItemEditor *editor;

并将上面代码段的第一行替换为:

self.editor = [[ItemEditor alloc] initWithWindowNibName:@"ItemEditor"];