我想打开第二个窗口,作为我应用主窗口中某些字段的内容编辑器。我用自己的笔尖创建了一个自定义的NSWindowController(称为ItemEditor)。
我用以下代码打开新窗口:
ItemEditor *editor = [[ItemEditor alloc] initWithWindowNibName:@"ItemEditor"];
[editor showWindow:nil];
[editor.window makeKeyAndOrderFront:nil];
新窗口会立即显示,然后立即消失。调用ItemEditor的initWithWindow:
和windowDidLoad
,但windowWillClose:
不是。
谁能告诉我这里发生了什么?我很难过。
答案 0 :(得分:0)
发生的事情是你正在使用ARC ......并且在创建“editor
”对象后没有任何内容。这就是它一旦被创造就消失的原因。
您需要在父窗口控制器中将“editor
”设为“strong
”属性。
换句话说,在父视图控制器的.h文件中声明它:
@property (strong) ItemEditor *editor;
并将上面代码段的第一行替换为:
self.editor = [[ItemEditor alloc] initWithWindowNibName:@"ItemEditor"];