2011-12-08 3 views
0

私はアプリケーションの統計情報を表示するためにNSPanelを使用しています。 App DelegateがcomputeStatsを呼び出すと、NSPanelがビジーであるかどうかをチェックしようとします。今NSPanelは、アプリケーションの開始時に読み込まれていません。ユーザーは、コマンドから「オン」にする必要があります。これはNSPanelを表示します。NSPanelが表示されなくなったかどうかを確認するには?

-(IBAction)viewStats:(id)sender 
{ 
    [self.statsPanel makeKeyAndOrderFront:self]; 
} 

、ユーザは、それが表示され、それがある場合にのみ、それは次に、統計データとNSTextFieldsを更新するかどうかを確認するために、computeStats方法チェックを統計パネルを閉じた場合。

-(void)computeStats 
{ 
    if ([self.statsPanel isVisible]) 
    { 
     [self.minLabel setDoubleValue:min]; 
     [self.medLabel setDoubleValue:med]; 
     [self.avgLabel setDoubleValue:avg]; 
     [self.maxLabel setDoubleValue:max]; 
    } 
} 

ユーザーがNSPanelを閉じ、次に開き後しかし、これは(EXC_BAD_ACCESSとクラッシュ)を失敗しました。そのパネルは、ユーザーが閉じた後でも表示されているかのように表示されます。

答えて

1

最初の統計情報パネルを示すとき

[self.statsPanel setReleasedWhenClosed:NO]; 

を試してみてください。

+2

これです。オプションで、PanelがNIBの場合、属性ペインで「終了時に解放」のチェックを外すことができます。 –

+0

素晴らしいです、もう一度ありがとうございます。 –

関連する問題