2011-09-06 4 views
3

환경 설정 창을 표시해야하는 상태 표시 줄에만 표시되는 Mac OS X 프로그램이 있습니다. 나는이 IBAction를 가지고 : applicationDidFinish 런칭에Mac OS X showWindow 문제 : NSWindow는 한 번만 나타납니다.

- (IBAction)showPreferences:(id)sender { 
    [self.preferencesWindowController showWindow:self]; 
    [[NSApplication sharedApplication] activateIgnoringOtherApps:YES]; 
} 

내가 가진 :

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    // Load the app's preferences window (but does not display it) 
    self.preferencesWindowController = [[PreferencesWindowController alloc] initWithWindowNibName:@"PreferencesWindowController"]; 

    [...] 

} 

클래스 헤더 :

#import <Cocoa/Cocoa.h> 
#import "AppPref.h" 


@interface PreferencesWindowController : NSWindowController { 
} 

@end 

문제는 : 환경 설정 창을 한 번만 표시됩니다. 내가 그것을 닫으면, 그것은 결코 다시는 나타나지 않을 것이다.

무엇이 문제 일 수 있습니까?

답변

2

창 속성을 닫을 때 소멸되지 않도록 변경해야합니다. Interface Builder에서이 작업을 수행 할 수 있습니다.

대신 -showPreferences: 방법에서 펜촉을로드하는 것이 좋습니다. nib을 -applicationDidFinishLaunching: 방법으로로드하면 응용 프로그램 실행 시간이 느려지므로 사용자 나 코드에 도움이되지 않습니다.

+0

"닫을 때 해제"확인란을 의미합니다. 나는 체크를 풀었고 더 좋은 일은 없었다. – DreamOfMirrors

+1

해결책을 찾았습니다 : 창 콘센트에 연결하는 것을 잊어 버렸습니다. 연결하여 문제를 해결했습니다. – DreamOfMirrors

+0

그는 두 번째로 한 일을 의미했습니다. 저는 같은 운동을하고 방금 같은 문제로 많은 게시물을 발견했습니다. 많은 사람들이이 문제에 어려움을 겪는다면, 애플이 더 쉽게 할 수 있다고 비명을 지른다. – GTAE86