Cocoa 从父窗口隐藏子窗口隐藏所有应用程序
我有两个窗口,一个是标题[mainWindow](Cocoa 从父窗口隐藏子窗口隐藏所有应用程序,cocoa,Cocoa,我有两个窗口,一个是标题[mainWindow](-setMovableByWindowBackground:YES),另一个是内容[secWindow],标题的子窗口,标题有一个隐藏内容的按钮 [mainWindow addChildWindow:secWindow ordered:NSWindowBelow]; [mainWindow setMovableByWindowBackground:YES]; 隐藏secWindow的代码: (IBAction) toggleSecondary:
-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应该提供一种隐藏和显示子窗口的简单方法。。我找不到。。你的代码可以工作。