2014-09-08 4 views
2

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

открыть новое окно с этим кодом: появляется

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

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

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

ответ

0

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

Вам необходимо сделать «editor» a «strong» в вашем родительском оконном контроллере.

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

@property (strong) ItemEditor *editor; 

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

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

, что сделал трюк. Сейчас все работает. Благодаря! – DKJ