3

NSWindowController를 사용하여 창을 응용 프로그램 대리인에서 열려고합니다. 내가 연관된 NIB와 기본적인 NSWindowController를 생성하고 창을 표시하려고 그런 식 : 나는 응용 프로그램을 실행하면NSWindowController의 창은 즉시 공개됩니다.

@implementation MyAppDelegate 
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    // Show the main window from a separate nib 
    MyWindowController * theWindowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"]; 
    [theWindowController showWindow:self]; 
} 
@end 

, MyWindowController의 창은 순식간 나타납니다 (곧 출시 될 것으로 보인다 시작하자마자).

ARC를 사용하면 어떻게 창을 닫고 즉시 플러시하지 않을 수 있습니까? 나는 NSDocuments를 사용하지 않고이 MyWindowController를 동시에 사용할 수 있기를 원합니다.

답변

11

theWindowConroller를 유지하는 응용 프로그램 대리인 (또는 응용 프로그램의 수명 동안 계속 될 다른 개체)에 속성을 추가해야합니다. 예를 들면 다음과 같습니다.

그런 다음 창 컨트롤러를 초기화 할 때이 속성을 설정하십시오.

@implementation MyAppDelegate 

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    // Show the main window from a separate nib 
    self.windowController = [[MyWindowController alloc] initWithWindowNibName:@"MyWindowController"]; 
    [theWindowController showWindow:self]; 
} 

@end 
+0

부탁드립니다. 감사합니다;) –

+0

windowController로 동일한 창을 열려면 어떻게해야합니까? 내가 두 번째 전화를 할 때 첫 번째 전화가 즉시 풀렸다. windowController1을 만들면 작동하지만 더 만들고 싶습니다. – mohacs

+0

@mohacs 당신이 선물하는 모든 창 컨트롤러를 저장해야합니다. 두 번째 속성도 새로 만듭니다. 더 많은 것을 만들 필요가 있습니까? NSMutableArray를 만들고 거기에 추가하십시오. – Ossir