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

Scroll NSTableView to endOfDocument not the last row

NSTableView 具有动态行高。我需要滚动到最后。我试过 scrollToEndOfDocument: 但它给出的结果与 scrollRowToVisible: 相同,后者是最后一行的开始

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

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

更新: 对于比周围的 NSClipView 大的 table 个单元格,上述技术只会滚动到单元格的顶部。要滚动到最后一个单元格的底部,您可以使用:

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

或者因为 OP 在 ObjC 中:

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