获取NSTableView中的内容高度

时间:2012-07-04 03:41:47

标签: objective-c macos cocoa nstableview nsscrollview

有没有办法在NSTableView中获取内容的高度。在iOS中,您可以使用-contentSize UIScrollView方法。但是,-contentSize的{​​{1}}方法似乎只返回NSScrollView的可见部分的高度,不包括屏幕外的任何部分。

那么,怎么能在Mac上完成呢?

2 个答案:

答案 0 :(得分:3)

- (NSSize)contentSize中的

Appkit返回NSClipView的大小,而不是在表格视图中滚动的内容的高度。我不知道UIScrollView是如何工作的,但是在OS X上,NSScrollView有一个“内容视图”(更恰当地命名为NSClipView)来剪切实际内容,这是由文档视图提供(如果其大小大于剪辑视图的大小,则可滚动),这是剪辑视图的子视图。

作为附注,NSScrollView通过设置文档视图的边界原点(据我所知)来滚动。

看起来你想要的是文档视图的高度,实际内容的高度。为此,尝试类似

的内容
scrollView.documentView.frame.size.height 

答案 1 :(得分:1)

您可以通过以下方式获取NSTableView的实际内容高度

  • Objective-C版本: tableView.intrinsicContentSize.height

  • 快速版本:tableView.intrinsicContentSize.height