2010-04-23 236 views
0

我有2個窗口,一個是頭[mainWindow](-setMovableByWindowBackground:YES),另一個是內容[secWindow],頭部的子項,頭部有一個按鈕來隱藏內容。從父窗口隱藏一個子窗口隱藏所有的應用程序

[mainWindow addChildWindow:secWindow ordered:NSWindowBelow]; 
[mainWindow setMovableByWindowBackground:YES]; 

代碼隱藏secWindow:

(IBAction) toggleSecondary: (id) sender; 
{ 
if ([secWindow isVisible]) { 
    [secWindow orderOut:self]; 
} else {   
    [secWindow orderFront:self]; 
} 
} 

問題是,當一推按鈕時,所有應用隱藏,主要和二段窗口和只需要隱藏[secWindow]。

回答

3

韋爾,我找到了一個解決方案,我不知道如果一個正確的方式,但爲我工作。^_^

//get the mainWindow cordinates 
NSRect theFrame = [mainWindow frame]; 
NSPoint theOrigin = theFrame.origin; 
NSPoint pSecWin = theFrame.origin; 
//put secWin below mainWindow 
pSecWin.y = theOrigin.y - secHeight; 

(IBAction) toggleSecondary: (id) sender; 
{ 
if ([secWindow isVisible]) { 
    [mainWindow removeChildWindow:secWindow]; 
    [secWindow orderOut:self]; 
} else { 
    [secWindow setFrameOrigin:pSecWin]; 
    [mainWindow addChildWindow:secWindow ordered:NSWindowBelow];  
    [secWindow orderFront:self]; 
} 
} 

這麼完蛋了,我還是謝謝你

+0

這幫助我,謝謝!在Snow Leopard上,當我在刪除它之前訂購子窗口時,父窗口也會隱藏 - 在訂購修復它之前,將子窗口從父窗口中移除。但是,獅子沒有看到同樣的問題。 – user2067021 2012-06-05 00:18:34

+0

謝謝。看起來像SDK應提供一種簡單的方法來隱藏和顯示NSWindow的孩子..我找不到它..你的代碼工作。 – 2013-05-13 15:22:43