2011-12-08 43 views
0

我正在使用NSPanel來顯示應用程序統計信息。當App Delegate調用computeStats時,它會嘗試檢查NSPanel是否可用。現在,NSPanel不會在應用程序啓動時加載。它要求用戶從一個命令開啓它。然後顯示NSPanel。如何判斷NSPanel是否不再可見?

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

現在,如果用戶關閉統計面板,看computeStats方法檢查它是否是可見的,並且僅當它是,則它將與統計數據更新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。就好像面板仍然可見,即使用戶關閉了它。

回答

1

嘗試

[self.statsPanel setReleasedWhenClosed:NO]; 

當第一表示統計面板。

+2

這個。或者,如果您的Panel是NIB,則可以在屬性窗格中取消選中「關閉時釋放」。 –

+0

太棒了,再次感謝。 –

相關問題