Question

I subclassed NSTableRowView in view-based NSTableView to change the selection color to a lighter blue instead of the default one.

Unfortunately when I select the row the color of the labels and textfields inside my custom cell turns white and it's not readable.

How can I prevent text from changing color on selection?

Solution Found:

All I had to do is to implement -setBackgroundStyle: in my custom NSTableCellView and there call the setBackgroundStyle:NSBackgroundStyleLight on the NSCell of all the controls I want to keep dark on selection.

Was it helpful?

Solution

How did you change the selection color? This sounds like it could have been caused by you adding a subview or sublayer (perhaps to cell.selectedBackgroundView?) on top of the existing layers. If you have any insertSublayer or subView calls, make sure you are doing them atIndex:0.

OTHER TIPS

You'll need to make a custom NSCell.

OK I figured it out.

All I had to do is to implement -setBackgroundStyle: in my custom NSTableCellView and there call the setBackgroundStyle:NSBackgroundStyleLight on the NSCell of all the controls I want to keep dark on selection.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top