我正在使用NSPanel来显示应用统计信息。当App Delegate调用computeStats时,它会尝试检查NSPanel是否为Visual。现在,应用程序启动时未加载NSPanel。它要求用户从命令中“打开”它。然后显示NSPanel。
-(IBAction)viewStats:(id)sender
{
[self.statsPanel makeKeyAndOrderFront:self];
}
现在,如果用户关闭了stats面板,那么computeStats方法会检查它是否可见,只有当它可见时,它才会使用stats数据更新NSTextFields。
-(void)computeStats
{
if ([self.statsPanel isVisible])
{
[self.minLabel setDoubleValue:min];
[self.medLabel setDoubleValue:med];
[self.avgLabel setDoubleValue:avg];
[self.maxLabel setDoubleValue:max];
}
}
然而,此操作失败(与EXC_BAD_ACCESS崩溃) 后,用户打开然后关闭NSPanel。就好像面板仍然可见,即使在用户关闭它之后也是如此。
答案 0 :(得分:1)
尝试
[self.statsPanel setReleasedWhenClosed:NO];
首次显示统计信息面板时。