2010-10-23 94 views
4

當應用程序失去焦點時,我一直試圖隱藏我的應用程序主窗口。應用程序失去焦點隱藏窗口

在測試

- (void)applicationDidResignActive:(NSNotification *)aNotification 
{ 

[window orderOut:self]; 

    _isShown = NO; 

} 

然而,這似乎只工作一次,我把我的窗口之後回來

[window makeKeyAndOrderFront:self]; 

[window orderFrontRegardless]; 

它不再工作,我究竟做錯了什麼?

+0

'_isShown'在別處有意義嗎?你是否在某處更改應用程序委託?什麼「不再有效」?應用程序是否成功激活?窗戶是不是第二次隱藏? 'applicationDidResignActive:'方法不再被調用嗎? – 2010-10-23 02:50:23

+0

_iSShown是我維護的一個內部屬性,它不在其他地方調用,它只能工作一次。該窗口不會第二次隱藏,並且applicationDidResignActive永遠不會再被調用。 – 2010-10-23 03:57:41

+0

'_isShown'是一個變量;因爲它的值不是指向函數的指針,它*不能被調用。你在其他地方如何使用它的價值?您還沒有回答我的其他兩個問題:您是否在更改應用程序代理?應用程序是否成功激活? – 2010-10-23 20:56:53

回答

2

這聽起來對我來說就像你真的想要一個NSPanel,或者至少讓你的窗口返回YES爲-hidesOnDeactivate

+0

設置方法hidesOnDeactivate返回YES沒有工作:( 我不想要一個面板B/C我的整個應用程序是1窗口,並需要隱藏時,它不是主要焦點 – 2010-10-23 17:17:59

+0

我也試過,[self setHidesOnDeactivate:YES] ;在我的NSWindow子類中,也沒有工作。 – 2010-10-23 17:25:21

相關問題