Draw a custom NSTableRowView depending on if next row is group row
cocoa, nstableview
Solution
Am I correct that your table view delegate implements `-tableView:rowViewForRow:`?
If so, let the table view delegate help:
- Add a property `drawsSeparator` to your custom row class.
- In your row class, check the value of this property in `drawRect` and adjust your drawing accordingly.
- Set `drawsSeparator` on your row in `rowViewForRow`. You can invoke `-tableView:isGroupRow:` with `row + 1` to determine whether the next row is a group (after checking to make sure you're not on the last row).
Problem
I have a custom `NSTableRowView` implementation to display my data cells. The table also contains group rows using a simple `NSTextField`. In my custom row view I need to change the drawing of the bottom separator slightly depending on if the next row below is a data cell (i.e. my custom row) or a group header. In the case of a group header I don't have to draw the separator, otherwise I'll end up with a 2px separator like shown in the screenshot. Is there a way to get a reference to the next (or previous) `NSTableRowView` instance from `[NSTableRowView drawBackgroundInRect:...]`?