2011-08-16 38 views
8

NSWindowが表示されているかどうかを確認する方法はありますか?私のアプリケーションの最初のウィンドウが表示されたらシートコントローラを表示したい(10.7のアニメーションが終了し、ユーザがウィンドウを見ることができる!)。 windowDidLoadにシートを表示しただけでは、愚かなアニメーション(シートがロールアウトし、ウィンドウが背面から飛び出す)になります。 NSWindowDelegateは、ウィンドウがキーウィンドウまたはメインウィンドウになったときに呼び出される2つのメソッドを提供していますが、その時点でウィンドウが既に完全に表示されている必要はありません。ライオンでは、この愚かなアニメーションでウィンドウがポップアップする傾向があります。NSWindowが表示されているかどうかを確認する方法

+0

私はそれを見つけることができません... – jtbandes

答えて

24

私はこのような何かのために行くだろう:

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

または変更が発生したときに、このキーのパスのオブザーバーが通知されます。

+0

私は少し眠るためにその時間を推測する、私はそのような機能を探しているような30分のNSWindowのマニュアルを検索し、100%存在しない。どうもありがとう! – JustSid

+3

@JustSid - 私は問題を研ぎ澄ますことはほとんどありません。翌日の休憩や新鮮な表情はよくあります:)。 – PeyloW

1

これは価値があるため、window.visibleプロパティにバインドすることもできます。 Xcode 4はバインド可能なプロパティではないと言って、あなたを驚かせるかもしれませんが、動作します。

これは、ウィンドウが表示されているかどうか、およびその他の方法に基づいて、NSStatusItemの表示/非表示を有効または無効にする場合に便利です。

すなわち、Interface Builderで:

  • バインドする:アプリケーションの委任
  • モデルキーのパス:私は窓がアニメーション終了時に、私はいくつかの通知について読んでいたと思っself.window.visible
関連する問題