Mac OS X showWindow问题:NSWindow只出现一次

时间:2011-09-06 18:55:03

标签: cocoa macos nswindow nswindowcontroller

我的Mac OS X程序仅在状态栏中可见,必须显示首选项窗口。 我有这个IBAction:

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

在applicationDidFinish Lauching中我有:

- (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

问题是:首选项窗口只显示一次。当我关闭它时,它将永远不再出现。

可能是什么问题?

1 个答案:

答案 0 :(得分:2)

您必须更改窗口属性,以便在关闭时不会销毁它。您可以在Interface Builder中执行此操作。

作为替代方案,我建议从-showPreferences:方法加载nib。在-applicationDidFinishLaunching:方法中加载nib会减慢应用程序启动时间,而不会对用户或代码造成任何好处。