2011年5月10日火曜日

FileManager 非アクティブ時の表示

Xcode4なら、アプリがアクティブな時はこういう表示になる。

これがフォーカスを失うと、こう表示される。


ToolBarやらTabやら、全部白っぽくなって「私は非アクティブ」とわかるようになっている。

自分でUI部品を作るとこの挙動も自分でコーディングしないといけない。でもまだ手を抜いているので、現在のプロジェクトだと非アクティブ時はこうなってしまう。


Tabと、その下の(これからつくろうとしている)NavigateViewがアクティブ時と同じ色でなので非常にカッコ悪い。

NavigateViewは「ディレクトリを1つ上に移動」とか「戻る」とか「進む」とかのボタンを表示しようとしている「簡易ToolBar」もどき。


このViewをつくり始めて、非アクティブ時の表示についてちょっと作業してみた。
NSAppが非アクティブになる時にNSApplicationWillResignActiveNotification、アクティブになる時にはNSApplicationWillBecomeActiveNotificationというNotificationを通知するので、それをObserveして表示を切り替えてみた。


@selector内で[NSApp isActive]をチェックしてみたけれどうまく判定できないようなので、appIsActiveみたいなインチキメンバを作っておき、それをdrawRectでチェックするようにしてみたらうまくいった。

うまくいったんだけど、これってNSAppのデリゲートになればいいだけの話ですな。UI部品になるクラスは、みんなアプリケーションのデリゲートになっているのかなあ。

というわけで、まだ手をつけていないTabの「非アクティブ時の表示」はNSAppのデリゲートになってやってみる予定。こうやってちょっとずつフレームワークの知識が増えていくのが、プログラミングの面白さでしょうか。

0 件のコメント:

コメントを投稿