I have an application with a view-based NSTableView
in it. Inside this table view, I have rows that have cells that have content consisting of a multi-row NSTextField
with word-wrap enabled. Depending on the textual content of the NSTextField
, the size of the rows needed to display the cell will vary.
I know that I can implement the NSTableViewDelegate
method -tableView:heightOfRow:
to return the height, but the height will be determined based on the word wrapping used on the NSTextField
. The word wrapping of the NSTextField
is similarly based on how wide the NSTextField
is… which is determined by the width of the NSTableView
.
Soooo… I guess my question is… what is a good design pattern for this? It seems like everything I try winds up being a convoluted mess. Since the TableView requires knowledge of the height of the cells to lay them out... and the NSTextField
needs knowledge of it's layout to determine the word wrap… and the cell needs knowledge of the word wrap to determine it's height… it's a circular mess… and it's driving me insane.
Suggestions?
If it matters, the end result will also have editable NSTextFields
that will resize to adjust to the text within them. I already have this working on the view level, but the tableview does not yet adjust the heights of the cells. I figure once I get the height issue worked out, I'll use the -noteHeightOfRowsWithIndexesChanged
method to inform the table view the height changed… but it's still then going to ask the delegate for the height… hence, my quandry.
Thanks in advance!