1

NSOutlineView下部に 2 つのボタンがあるソースビュー ( ) があります。NSBoxボタンの後ろにあるときにアイテムが「透けて見えない」ように を追加しました。

ウィンドウがアクティブな場合、これは正常に機能します。

ここに画像の説明を入力

しかし、ウィンドウを非アクティブにするとすぐに、の背景色NSBoxに合わせて淡色表示されたバージョンではなく、アクティブな色が残ります。NSOutlineView

ここに画像の説明を入力

これらの 2 つの色が常に一致していることを確認するにはどうすればよいですか。NSOutlineまた、特定の色を使用することは、色の使用がいつか変わる可能性があるため、ちょっとしたハックです。

更新: Apple の Mail.app とThingsには、この問題に対する解決策があるようです。:-/

4

3 に答える 3

1

解決策は、NSOutlineView のプロパティへの参照を保持することです。これは、親ウィンドウのキー ステータスに応じて動的に変化backgroundColorする特別なものだからです。NSColorカスタム ビューの色をその参照に設定します。ウィンドウがキー ステータスを失った/獲得した場合はsetNeedsDisplay:、カスタム ビューを呼び出して、新しい色を使用してウィンドウを再描画します。KVO を使用して、 と を観察NSWindowDidBecomeKeyNotificationNSWindowDidResignKeyNotificationます。色へのポインターは同じままですが、参照によって表される実際の色が変わることに注意してください。解決策はこちらで説明されています。

于 2015-10-26T01:32:38.320 に答える
0

の属性インスペクタでNSBox、表示を透明に設定します

于 2013-10-15T10:04:17.953 に答える