Cocoa 从父窗口隐藏子窗口隐藏所有应用程序

Cocoa 从父窗口隐藏子窗口隐藏所有应用程序,cocoa,Cocoa,我有两个窗口,一个是标题[mainWindow](-setMovableByWindowBackground:YES),另一个是内容[secWindow],标题的子窗口,标题有一个隐藏内容的按钮 [mainWindow addChildWindow:secWindow ordered:NSWindowBelow]; [mainWindow setMovableByWindowBackground:YES]; 隐藏secWindow的代码: (IBAction) toggleSecondary:

我有两个窗口,一个是标题[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]。

Weel,我找到了一个解决方案,我不知道是否有正确的方法,但对我有效^_^

//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];
}
}

就这样,谢谢你了,我找到了一个解决办法,我不知道是否有正确的方法,但对我有效^_^

//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];
}
}

就这样,无论如何谢谢你这帮了我,谢谢!在SnowLeopard上,当我在移除子窗口之前将其移出时,父窗口也会被隐藏-在移出之前将子窗口从父窗口移出修复了它。但是在Lion上没有看到相同的问题。谢谢。看起来SDK应该提供一种隐藏和显示子窗口的简单方法。。我找不到。。你的代码行得通。这对我很有帮助,谢谢!在SnowLeopard上,当我在移除子窗口之前将其移出时,父窗口也会被隐藏-在移出之前将子窗口从父窗口移出修复了它。但是在Lion上没有看到相同的问题。谢谢。看起来SDK应该提供一种隐藏和显示子窗口的简单方法。。我找不到。。你的代码可以工作。