面板在 Nib Load 上可见,但无法从工具栏单击可见

问题描述

我在 Xcode 中有一个 MacOS Objective C 项目,其中包含两个 Nib 文件。在第二个 Nib 中,我有一个 NSPanel 对象。我为它创建了一个插座,如下所示:

@property (weak) IBOutlet NSPanel *Settings;

如果我在身份检查器中选中“启动时可见”,它会在启动时出现。但是,如果我取消选中此选项并尝试使其从工具栏项目中可见,请使用工具栏中的操作单击,如下所示:

- (IBAction)SettingsClick:(id)sender {
[_Settings setIsVisible:true];}

面板不可见。我也试过代码

[self.Settings makeKeyAndOrderFront: self];

在操作中,但这也不会导致面板变得可见。

如果我在启动时使面板可见,关闭它也会关闭第二个 Nib 定义的窗口。

解决方法

如果改变第二个笔尖的显示方式

[[self loadWithNibNamed:@"ImageSplit" owner:self ] display];

[[self loadWithNibNamed:@"ImageSplit" owner:self ] setNeedsDisplay:true];

然后是工具箱项操作

[self.Settings makeKeyAndOrderFront: self];

第一次单击工具箱项时显示“设置”面板“确定”。但是,如果第二个 Nib 关闭并重新打开,则单击工具栏项不会显示“设置”面板。此外,面板并不总是出现 - 有时需要一个 Clean Build 文件夹,有时不止一次,所以问题仍未解决。