我正在使用NSPanel来显示应用程序的统计数据。当App调用computeStats时,它会尝试检查NSPanel isVisible。现在,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。就好像面板仍然是可见的,即使在用户关闭它之后。
发布于 2011-12-08 01:08:04
试一试
[self.statsPanel setReleasedWhenClosed:NO];当第一次显示统计面板时。
https://stackoverflow.com/questions/8424902
复制相似问题