我有一个 NSScrollView,里面有一个 NSTableView。
如您所见,有一个 100px 高的 NSView 覆盖在 table view 之上。(这是有意完成的,覆盖层略微透明,您可以看到下方表格视图滚动的阴影)。
问题当然是我需要在滚动视图的底部添加 100px 的空白空间来补偿覆盖。否则你看不到表格的底部,它会被覆盖层覆盖。
我试过修改剪辑视图,但似乎只能改变它的框架(失去透明覆盖效果)。
也许我做得不太对,请帮助!
我有一个 NSScrollView,里面有一个 NSTableView。
如您所见,有一个 100px 高的 NSView 覆盖在 table view 之上。(这是有意完成的,覆盖层略微透明,您可以看到下方表格视图滚动的阴影)。
问题当然是我需要在滚动视图的底部添加 100px 的空白空间来补偿覆盖。否则你看不到表格的底部,它会被覆盖层覆盖。
我试过修改剪辑视图,但似乎只能改变它的框架(失去透明覆盖效果)。
也许我做得不太对,请帮助!
好的,所以我想通了,我需要不断地放大documentView
框架。
我发现这样做的最好方法是对文档视图进行子类化,在本例中是 NSTableView。
在子类 NSTableView 中,我覆盖了setFrameSize:(NSSize)newSize
- (void)setFrameSize:(NSSize)newSize {
newSize.height += 100;
[super setFrameSize:newSize];
}
这在表格视图的底部添加了 100px 的填充,从而为滚动视图添加了 100px 的填充。
在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)
}
}