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

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


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

最佳答案

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

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

更新:
对于大于周围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)]

关于macos - 滚动NSTableView到endOfDocument而不是最后一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54968384/

10-14 17:35
查看更多