ビューベースのテーブルビューを使用していますが、選択時に白いテキストカラーでNSTextFieldsを描画したくありません。実用的な解決策を見つけることができませんでした。ですから、どんな助けでも大歓迎です。
これが私の問題です:
「選択は白」のテキストもデフォルトのテキストの色で描画したい。
これまでのところ、私はそれを理解しました
- に属性を設定しても、実際に
tableView:viewForTableColumn:item:
は役に立ちません NSTextField
コントロールのデフォルトの色とは異なるカスタムカラーに色を設定すると、白で描画できなくなりますが、フォントスタイル(太字、斜体など)は失われます。NSTableView
のselectionHighlightStyle
属性をに設定NSTableViewSelectionHighlightStyleNone
すると、トリックは実行されますが、再描画されませんNSTableRowView
。また、選択したスタイルは私が望むものではありません。最初のクリックで行を選択し、2番目のクリックでテキストフィールドを編集します。最初のクリックを使用NSTableViewSelectionHighlightStyleNone
すると、テキストフィールドの編集が開始されます。- NSTextFieldが境界線で囲まれている場合、テキストの色は変わりません。しかし、境界線のあるテキストフィールドは必要ありません(スクリーンショットに示されているように。テキストフィールドは編集可能です)
テキストフィールドが「どのように」白い色になるのか理解できませんでした。オーバーライドsetTextColor:
して、選択が変更されたときに呼び出されないことに気付きました。したがって、NSAttributedStringは、NSTableViewの描画/選択ルーチン内のどこかに構築されていると思います。
どんな助けでも大歓迎です。