Второе окно OS X не останется открытым

Я хочу открыть второе окно в качестве редактора контента для некоторых полей в главном окне моего приложения. Я создал собственный NSWindowController (называемый ItemEditor) со своим собственным пером.

Я открываю новое окно с этим кодом:

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

Новое окно появляется на мгновение, а затем сразу исчезает. Оба initWithWindow: а также windowDidLoad ItemEditor называются, но windowWillClose: нет.

Кто-нибудь может сказать мне, что здесь происходит? Я в тупике.

1 ответ

Решение

То, что происходит, это то, что вы используете ARC... и ничто не держит наeditor"объект после того, как он создан. Вот почему он исчезает, как только он создается.

Вам нужно сделатьeditor"а"strongmsgstr "свойство в родительском контроллере окна.

Другими словами, объявите это так в файле.h родительского контроллера:

@property (strong) ItemEditor *editor;

И замените первую строку вашего фрагмента кода выше на это:

self.editor = [[ItemEditor alloc] initWithWindowNibName:@"ItemEditor"];
Другие вопросы по тегам