2014-09-08 5 views
2

내 응용 프로그램의 기본 창의 일부 필드에 대한 콘텐트 편집기로 작동 할 두 번째 창을 열고 싶습니다. 나는 고유 한 펜촉으로 (ItemEditor라고 불리는) 커스텀 NSWindowController를 만들었다. OS X 두 번째 창이 열리지 않습니다.

는이 코드로 새 창을 엽니 다

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

새로운 윈도우가 즉시 나타납니다 후 즉시 사라집니다. ItemEditor의 initWithWindow:windowDidLoad이 호출되지만 windowWillClose:은 호출되지 않습니다.

아무도 나에게 무슨 일이 일어나는지 말해 줄 수 있습니까? 나는 혼란 스럽다.

답변

0

무슨 일이 일어 났는지는 ARC를 사용하고 있으며, 생성 된 후에는 "editor"개체를 들지 않습니다. 그것이 그것이 만들어지는 즉시 사라지는 이유입니다.

"editor"을 부모 창 컨트롤러에 "strong"속성으로 만들어야합니다. 즉

는 부모 뷰 컨트롤러의 .H 파일에 다음과 같이 선언 :

@property (strong) ItemEditor *editor; 

그리고 이것에 위의 코드의 첫 번째 줄 대체 :

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

했다 장난. 모든 것이 지금 작동합니다. 감사! – DKJ