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

标签 macos cocoa nstableview nsscrollview

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

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

Example

最佳答案

您的 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)]

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

相关文章:

Mac OS X 中的 clock_gettime 替代方案

objective-c - NSPNGFileType - 在 Swift 中找不到?

objective-c - 如何检查用户选择的文件我的沙盒应用程序是否有权写入?

cocoa - Mac 应用商店和插件

objective-c - 如何使命令-A 选择 NSTableView 中行中的所有 NSTextView 文本?

cocoa - 单击表外某处时取消选择 NSTableView

cocoa - NSTableView 不显示项目

python - Mac OS Catalina 中修复了 OS Mojave 中的 tkinter 8.6 系统崩溃错误吗?

swift - Mac OS AVPlayer Xcode 10.2.1 swift 5.0.1 无法运行

objective-c - 关于 NSMutableArray/NSArray 类簇,可以安全地假设什么?