2011-08-16 178 views
8

有沒有辦法檢查NSWindow是否可見?我希望在應用程序的第一個窗口變得可見之後顯示一個圖表控制器(10.7上的動畫結束,用戶可以看到窗口!)。如果我只是在windowDidLoad中顯示錶單,則會導致看起來很愚蠢的動畫(表單展開,窗口從後面彈出)。我知道NSWindowDelegate提供了兩種方法,當一個窗口成爲關鍵窗口或主窗口時調用,但這並不意味着該窗口在當時已經完全可見。這對於Lion來說更加引人注目,因爲這些愚蠢的動畫往往會彈出窗口。如何檢查NSWindow是否可見

+0

我以爲我已經讀到了一些通知時,窗口完成動畫在屏幕上,但現在我找不到它... – jtbandes

回答

24

我會去這樣的事情:

if ([myWindow isVisible]) { 
    // Do stuff 
} 

或者當發生變化時通知此關鍵路徑的觀察者。

+0

我想我的睡眠時間有點多,我搜索了NSWindow的文檔,花了30分鐘尋找這樣一個功能,並且100%確定像這樣的東西沒有不存在。非常感謝! – JustSid

+3

@JustSid - 我知道這種感覺,對問題的研究很少幫助。第二天休息和新鮮的樣子經常做:)。 – PeyloW

1

對於它的價值,你也可以綁定到window.visible屬性。 Xcode 4可能會對您發出警告,稱它不是可綁定的屬性,但它會起作用。

,如果你想啓用/禁用顯示這可能是有用/根據窗口是否可見,以及其他方法掩飾NSStatusItem。

即在Interface Builder:

  • 綁定到:應用程序委託
  • 型號主要路徑:self.window.visible