Re: NSTableView variable row height and noteHeightOfRowsWithIndexesChanged during live resize
Re: NSTableView variable row height and noteHeightOfRowsWithIndexesChanged during live resize
- Subject: Re: NSTableView variable row height and noteHeightOfRowsWithIndexesChanged during live resize
- From: Stuart Malin <email@hidden>
- Date: Thu, 23 Apr 2009 14:44:10 -1000
On Apr 23, 2009, at 1:18 PM, Corbin Dunn wrote:
On Apr 23, 2009, at 3:37 PM, Stuart Malin wrote:
On Apr 23, 2009, at 12:33 PM, Corbin Dunn wrote:
On Apr 23, 2009, at 2:55 PM, Stuart Malin wrote:
I have an NSTableView with a single column that has a custom
cell. During a live resize, I recalculate the row height in the
delegate method -tableView:heightForRow: and return the result.
However, some rows don't grow larger. I presume I need to call
the tableview's -noteHeightOfRowsWithIndexesChanged for each row
that has a height change. Is it okay to call this from within the
tableView:heightForRow: method?
No, it is not; you'll have to redo your logic, or call it with a
range for all rows (probably the easiest thing to do).
Thanks Corbin.
What about from within the tableview delegate method -
tableViewColumnDidResize ?
That is fine; note that it is only sent out when the live-resize
method ends. Your calculation in -heightForRow: can't depend on the -
[tableColumn width], unless you call the -noteHeightXX method more
frequently (ie: you'd have to capture when the setWidth: happens by
subclassing the table column).
I subclassed the table column and overrode its -setWidth method. When
that is invoked, I recalculate the cell heights for *only* the visible
rows. I keep track of those rows that change, prepare an index set,
and notify the table view with -noteHeightXXX.
Works like a charm!
Question: presently, in the overridden -setWidth, I invoke -
noteHeightXXX *before* calling [super setWidth:newWidth] As I said,
this works, and seems to me to be the logical ordering of events, but
just want to check if I should be calling -noteHeightXXX *after*
invoking the super (NSTableColumn) -setWidth.
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden