2011-10-05 57 views
1

我有一个主窗口,这是我的应用程序的中心。对于不同的功能,我打开一个子窗口来处理某些特定的功能。我希望所有的窗户都能独立移动,但现在如果我移动原来的中央窗户,那么所有这些窗户都随之移动。我怎样才能让孩子的窗户断开连接,让他们不随父母一起移动?如何移动NSWindow而不移动儿童NSWindows

回答

3

删除孩子被移动的窗口暂时之前,然后把它们放回:

- (void)windowWillMove:(NSNotification *)notification; 
{ 
    [window removeChildWindow:child]; 
} 

- (void)windowDidMove:(NSNotification *)notification 
{ 
    if (![window inLiveResize]) 
      [window addChildWindow:child ordered:NSWindowAbove]; 
} 

或者,如果你不需要NSWindowAbove排序,只是不要让他们的孩子在首位:)

+0

我跟着“不要让他们成为孩子”。 –

+0

在移动家长时不会将孩子放在家长的下方吗? – cap

0

的另一种方式,你可以展示你的孩子窗口而不将其添加为一个子窗口,但窗口内达到同样的行为”级别:

[self.childWindowController showWindow:self]; 
[self.childWindowController.window setLevel:NSSubmenuWindowLevel]; 

我不知道这是我的方法这是正确的,很好的解决方案,但它适用于我。