在 NSTableView 中滚动

Posted

技术标签:

【中文标题】在 NSTableView 中滚动【英文标题】:Scrolling in NSTableView 【发布时间】:2009-09-16 19:27:53 【问题描述】:

我不是在问如何做到这一点,它更符合“你会怎么称呼它?”。

我有一个带有几个自定义单元格的 NSTableView。我希望表格逐行滚动,这意味着当我向上移动滚动条时,我希望顶行消失,当我向下移动时,我希望底行也消失 - 我不想看到我的单元格的一半.

您如何称呼这种行为?如果你已经在 NSTableView 中实现了,你能分享一些指针吗?

【问题讨论】:

【参考方案1】:

我不确定这会被称为什么(可能类似于“受限滚动”?),但您可以使用NSView-adjustScroll: 方法来实现。

一般的方法是你需要创建一个NSTableView 的子类(如果你还没有),并重写这个方法以返回一个NSRect,它的origin.y 值被限制为一个倍数你的行高。

您可能还想使用NSScrollView-setVerticalLineScroll: 设置当用户单击垂直滚动条中的滚动箭头时的适当滚动量。您可以通过在 tableView 上调用 -enclosingScrollView 来获取 scrollView。

【讨论】:

感谢您的提示。在我接受答案之前让我测试一下。 我只是想实现同样的行为。我遇到了一些问题,底行可能会被切断,因此我将 Clip View 的底部 contentInset 增加了行的高度以抵消它。

以上是关于在 NSTableView 中滚动的主要内容,如果未能解决你的问题,请参考以下文章

如何在 NSScrollView 中控制 NSTableView 的绘制?

懒惰地加载 NSTableView

重新加载后的 NSTableView 通知

NSTableView 内的 NSTableViewCell

基于视图的 NSTableView 中的自定义背景

具有自定义高度的 NSTableView 部分横幅列