Search code examples
objective-ccocoanstableviewnsoutlineview

How to location a specific row to the top of a NSOutlineView?


I want to location a row to the top of a NSOutlineView. What I find is scrollRowToVisible:.But it only can location the row to the bottom of the NSOutlineView.

My OutlineView'scrollView is using autolayout and the row height is variable.So I don't want to get the scrollView'height by its constraints then do some calculate and use scrollRowToVisible: by plus the calculate'result.

Any other ideas?


Solution

  • answer my own question:

    NSRect rect=[_tableView rectOfRow:row];
    [_tableView.enclosingScrollView.documentView scrollPoint:rect.origin];
    [_tableView.enclosingScrollView displayIfNeeded];