Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get height of content in NSTableView

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?

like image 734
edc1591 Avatar asked Jul 04 '12 03:07

edc1591


2 Answers

- (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 
like image 196
Vervious Avatar answered Nov 12 '22 02:11

Vervious


You can get the real content height of NSTableView by

  • Objective-C version: tableView.intrinsicContentSize.height

  • Swift version: tableView.intrinsicContentSize.height

like image 45
Artem Bobrov Avatar answered Nov 12 '22 02:11

Artem Bobrov