6

我有一个 NSScrollView,里面有一个 NSTableView。

在此处输入图像描述

如您所见,有一个 100px 高的 NSView 覆盖在 table view 之上。(这是有意完成的,覆盖层略微透明,您可以看到下方表格视图滚动的阴影)。

问题当然是我需要在滚动视图的底部添加 100px 的空白空间来补偿覆盖。否则你看不到表格的底部,它会被覆盖层覆盖。

我试过修改剪辑视图,但似乎只能改变它的框架(失去透明覆盖效果)。

也许我做得不太对,请帮助!

4

2 回答 2

7

好的,所以我想通了,我需要不断地放大documentView框架。

我发现这样做的最好方法是对文档视图进行子类化,在本例中是 NSTableView。

在子类 NSTableView 中,我覆盖了setFrameSize:(NSSize)newSize

- (void)setFrameSize:(NSSize)newSize {
    newSize.height += 100;
    [super setFrameSize:newSize];
}

这在表格视图的底部添加了 100px 的填充,从而为滚动视图添加了 100px 的填充。

于 2013-01-26T21:28:08.020 回答
2

Swift 4中也是这样:

class TableViewPadded: NSTableView{
  //Add padding at bottom
  override func setFrameSize(_ newSize: NSSize) {
    let padded = NSSize(width: newSize.width, height: newSize.height+30)
    super.setFrameSize(padded)
  }
}
于 2017-11-09T18:10:59.510 回答