2012-02-15 16 views
3

NSTableRowViewのカスタムインスタンスを使用してビューベースのNSTableViewを使用して、標準セルと選択した行のセルの背景を描画します。カスタム行の背景を持つNSTableView

私の問題は、行が選択されるとテーブル行のラベルが白色に変わるということです。私は、テキストフィールドのセルが選択され、テキストの色が反転されていることを認識していると仮定します。

しかし、これは私のカスタム背景/行の選択ではうまく機能しません。白いテキストはもう表示されません。 NSTextFieldが選択した色にチェーンされないようにする方法がありますか(サブクラス化を行わないことが好ましいですが、NSButtonと同じ問題があります)。

ここで中央に選択された行とスクリーンショットは(白ラベルが見えにくいです)です:

selected row in the middle

答えて

4

最善の解決策はNSTableCellViewをサブクラス化し、setBackgroundStyle:メソッドをオーバーライドすることです。

これについては、この質問に対する@セスの回答:NSTextField in NSTableCellViewで詳しく説明されています。

+0

私はNSButtonで同じ問題を抱えています。このように、ビュー内のすべてのラベル(4つのラベル+ 1つのボタン)を参照する必要があります。これは本当に行く方法ですか? – Mark

+0

私はこの答えが受け入れられる理由を知りません。 'willDisplayCell'はビューベースのテーブルビューのために呼び出されません。私はこれがどのように問題を解決するのか分かりません。 – cocoafan

+0

@Monoloありがとうございました!それはトリックを行い、私の問題も解決しました。 – cocoafan

関連する問題