Get height of content in NSTableView
Asked Answered
O

2

6

Is there a way to get the height of the content in an NSTableView. In iOS, you can use the -contentSize method of UIScrollView. However, the -contentSize method of NSScrollView seems to just return the height of only the visible section of the NSScrollView, not including whatever is offscreen.

So, how can this be done on a Mac?

Oblong answered 4/7, 2012 at 3:41 Comment(0)
B
5

- (NSSize)contentSize in Appkit returns the size of the NSClipView, and not the height of the content that scrolls inside the table view. I don't know how UIScrollViews work, but on OS X, an NSScrollView has a "content view" (more aptly named the NSClipView) that clips the actual content, which is provided by a document view (scrollable if it has a size larger than that of the clip view) that is a subview of the clip view.

As a side note, the NSScrollView scrolls by setting the document view's bounds origin (to the best of my knowledge).

It looks like what you want is the height of the document view, the height of the actual content. For that, try something like

scrollView.documentView.frame.size.height 
Boomer answered 4/7, 2012 at 3:55 Comment(1)
Unfortunately, this also includes space of previously removed rows.Squinty
A
3

You can get the real content height of NSTableView by

  • Objective-C version: tableView.intrinsicContentSize.height

  • Swift version: tableView.intrinsicContentSize.height

Anisometropia answered 5/8, 2018 at 17:26 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.