滚动NSTableView到endOfDocument而不是最后一行

时间:2019-03-03 11:36:45

标签: macos cocoa nstableview nsscrollview

我有NSTableView个动态行高。我需要滚动到末尾。我尝试了scrollToEndOfDocument:,但其结果与scrollRowToVisible:相同,后者是最后一行的开始

- (void)viewDidLoad {
    [super viewDidLoad];
    //[[self tableView] scrollRowToVisible:[[self tableView] numberOfRows] - 1];
    [[self tableView] scrollToEndOfDocument:self];
}

Example

1 个答案:

答案 0 :(得分:1)

您的scrollRowToVisible方法应该有效。这是一个快速sample project,它通过滚动到最后一行的按钮来实现可变高度。滚动后,最后一行完全可见。

TableScroll image

更新: 对于大于周围NSClipView的表单元格,上述技术将仅滚动到该单元格的顶部。要滚动到最后一个单元格的底部,可以使用:

let point = NSPoint(x: 0, y: tableView.frame.height)
tableView.scroll(point)

或者因为OP在ObjC中:

[[self tableView] scrollPoint: NSMakePoint(0, [self tableView].frame.size.height)]