带有NSWindowController的NSPanel显示在xcode中,但不在存档的应用程序中显示

时间:2013-06-28 22:21:35

标签: objective-c xcode cocoa nswindowcontroller nspanel

我遇到了问题,如果我在发布和调试模式下从Xcode启动它,我的PreferencePanel只会显示出来。但是,如果我启动我的应用程序的存档.app,如果单击我的Preferences按钮,则没有任何反应。如果从Xcode启动,如果我打开pref面板,关闭它并等待几秒钟再次尝试该命令也没有任何反应,面板不显示。我正在使用名为“PreferenceController”的NSWindowController类,并使用-(id)initreturn [super initWithWindowNibName:@"Preferences"];方法中加载nib文件。 xib的文件所有者设置为“PreferenceController”,窗口属性与xib中的面板连接。

在我的AppController中,我有一个方法-(IBAction)showPreferencePanel:(id)sender来打开面板。

@interface AppController : NSObject {
    PreferenceController *_preferenceController;
}

…

- (IBAction)showPreferencePanel:(id)sender
{
    if (!_preferenceController) {
        _preferenceController = [[PreferenceController alloc] init];
    }

    [_preferenceController showWindow:self];
}

AppController中实例化mainMenu.xib

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我发现了,问题是什么。我开发了一个仅限NSStatusItem的应用程序,面板选项HideOnDeactivate设置为ON。如果我现在打开面板,它会自动失去焦点并消失。谢谢你的帮助。