7

我有NSTableView一个非常小的固定行数。

NSTableView当我在 Interface Builder 中创建一个时,NSTableView它包含在一个NSScrollView. 我还没有找到使表格存在于滚动视图上下文之外的方法。由于表格只有少量行,我不希望它滚动。我希望表格根据行数调整大小,并且我希望底部边框紧邻最后一行的底部。

如果我如下设置滚动视图的高度,我会得到一个垂直滚动条:

height = (numRows * (rowHeight + intercellSpacingHeight))

如果我在该高度上添加一个像素,我不会得到滚动条,但我会在最后一行的底部和底部边框之间得到一个额外的像素。

如果我取消选中 Interface Builder 中的“显示垂直滚动条”复选框,滚动条不会出现,但当我选择最后一行时,表格会向下滚动一个像素。

有没有办法让表格根本不滚动,并且底部边框紧挨最后一行?

谢谢。

4

2 回答 2

3

您始终可以从其封闭的滚动视图中提取 NSTableView(在代码中或在 IB 中)......您可以将表格嵌入到您希望的任何容器中,但由您决定在容器内保持表格的大小(和/或增长/缩小容器作为响应,具体取决于您想要做什么)。

于 2010-03-04T02:34:49.387 回答
1

awakeFromNib您可以编写类似(未经测试)的内容:

NSScrollView *scrollView = [tableView superview];
NSView *container = [scrollView superview];
[[tableView retain] autorelease];
[tableView removeFromSuperview];
[scrollView removeFromSuperview];
[container addSubview:tableView];
[container setFrameSize:[tableView frame].size];

或者,在 Interface Builder 中,您可以通过更改为列表视图模式(主菜单 -> 视图 -> 作为列表)从滚动视图中提取表格视图。然后展开视图层次结构,直到看到表格视图。您可以将其拖出滚动视图,但不能拖到另一个视图中。您可以将其连接到插座并以编程方式将其添加到视图中。

当行数发生变化时,您仍然需要更新容器的高度。

于 2010-03-04T07:04:04.220 回答