多くのApps(Mailなど)で使用されている標準ソースビュースタイルのサイドバーは、ウィンドウがアクティブなときに青色で、非アクティブなときに青色タイトルバーの状態の変更。ウィンドウの状態に応じてビューの背景色を設定する
さまざまな理由から、私はカスタムサイドバーを開発しましたが、バックグラウンドに対しても同じ効果が必要です。
アイデアは、背景を塗りつぶすカスタムNSView
を作成し、サイドバーの背景として使用することです。私は設定したいプロパティを「アクティブ」にしておき、drawメソッドはそれに応じて2つの異なるグラデーションをrectに塗りつぶします。
ここで問題となるのは、このようなビューをウィンドウの状態までフックする最も良い方法は何ですか?
ありがとうございます!私は疑念が通知を受け取るための最善の方法だと思う。私の本能は、それがビューやコントローラの階層を下っていくべきだと私に教えてくれるだろうし、サイドバーコントローラがウィンドウやアプリケーションのような上のエンティティからの通知を直接受け取るように登録することはちょっとしたショートカットに思えた。しかし、それはそれを行う方法でしょうか? – Monolo
私はあなたのサイドバーを通知のオブザーバーとして追加するだけです。たとえば、次のようになります。[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(yourMethod :) name:NSApplicationDidResignActiveNotification object:nil]; – lbrndnr