2011-10-05 77 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]; 

我不知道這是我的方法這是正確的,很好的解決方案,但它適用於我。