2011-02-02 9 views
2

私のアプリケーションでは、ユーザがsystemstatusbarのアイコンをクリックするとNSViewが表示されます。 このNSViewはMAAttachedWindowと共に表示されます。ビューがMAAttachedWindowで表示されるときにNSViewコンテンツを更新する

私の質問です:attachedWindowが表示されたときにNSViewの内容を更新する方法(makeKeyandorderFront)

私はawakeFromNibメソッドでコンテンツを更新しようとしたが、それは一度だけ動作します。

誰でもお手伝いできますか?

おかげ

答えて

2

私が見つけた解決策:

を私は私の見解ではオブザーバを追加しました: 私はMAAttachedwindowのNSWindowDidBecomeKeyNotification通知を聞くために[selftウィンドウ]にオブジェクトを設定しました。

- (ボイド)awakeFromNib

{

[NSNotificationCenter defaultCenter] addObserver:自己セレクタ:@selector(windowDidBecomeKey :)名:NSWindowDidBecomeKeyNotificationオブジェクト:[自己ウィンドウ]。

}

- (無効)windowDidBecomeKey:私は解決策を見つけた(NSNotification *)ノート

{

//

}

1

理由-awakeFromNib回のみ動作しますあなたは一度だけXIBからアセンブリをロードし、周りにそれを維持しているためと考えられます。

MAAttachedWindowインスタンスで実際にあなたのビューを表示するアクションは、表示する前に「リフレッシュ」するのに理想的な場所です。つまり、自分自身で-makeKeyAndOrderFront:を呼び出します。

So:何を試しましたか?

+0

ここでリフレッシュしてください今朝:私はMAAttachedwindowからのwindowDidBecomeKey通知への私のビューのオブザーバーを追加しました。セレクタにリフレッシュを追加します。 (私は私の質問をする前に、このソリューションを試しましたが、別のバグのために、これは動作していなかったため、アプリケーションがハングしていました) – Webmixer

関連する問題