【问题标题】:Mac OS X showWindow problem: NSWindow appears only onceMac OS X showWindow 问题:NSWindow 只出现一次
【发布时间】:2011-09-07 04:58:12
【问题描述】:

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

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

在 applicationDidFinish Launching 我有:

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

问题是:首选项窗口只显示一次。当我关闭它时,它就再也不会出现了。

可能是什么问题?

【问题讨论】:

    标签: cocoa macos nswindow nswindowcontroller


    【解决方案1】:

    您必须更改窗口属性,使其在关闭时不会被破坏。您可以在 Interface Builder 中执行此操作。

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

    【讨论】:

    • 您的意思是“关闭时释放”复选框。我已经取消检查,没有更好的事情发生。
    • 我找到了解决方案:我忘记连接窗户插座,连接它解决了我的问题。
    • 他的意思是你做的第二件事——我刚刚经历了同样的练习,我发现很多帖子都有同样的问题。如果有这么多人在这个问题上遇到麻烦,那么苹果应该让事情变得更容易。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-11
    • 2012-03-08
    • 2014-07-05
    • 2011-08-15
    相关资源
    最近更新 更多