2010-04-23 137 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