2011-09-06 75 views
3

我有一個Mac OS X程序僅在狀態欄中可見,必須顯示一個首選項窗口。 我有這個IBAction爲:Mac OS X showWindow問題:NSWindow只出現一次

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

在applicationDidFinish空空,我有:

- (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:方法中加載筆尖。在-applicationDidFinishLaunching:方法中加載筆尖會減慢應用程序的啓動時間,但對用戶或代碼沒有任何好處。

+0

您的意思是「關閉時釋放」複選框。我已經取消選中,沒有更好的事情發生。 – DreamOfMirrors

+1

我找到了一個解決方案:我忘了連接窗口,連接它解決了我的問題。 – DreamOfMirrors

+0

他意味着你做的第二件事 - 我剛剛經歷了相同的練習,並且發現了許多具有相同問題的帖子。如果有這麼多人在這個問題上遇到麻煩,那麼它會讓蘋果公司更加容易做到。 – GTAE86