I have an NSCollectionView
that contains a collection of CustomViews
. Initially it tiled the subviews into columns and rows like a grid. I then set the Columns
property in IB to 1, so now it just displays them one after another in rows. However, even though my CustomView
is 400px wide, it's set to autoresize, the NSCollectionView
is 400px wide, and it's set to 1 column, the subviews are drawn about 80px wide.
I know I can get around this by calling:
CGFloat width = collectionView.bounds.size.width;
NSSize size = NSMakeSize(width, 85);
[collectionView setMinItemSize:size];
[collectionView setMaxItemSize:size];
But putting this code in the awakeFromNib
method of my WindowController
only sets the correct width when the program launches. When I resize the window (and the NSCollectionView
autoresizes as I've specified), the CustomViews stay at their initially set width.
I'm happy to take care of resizing the subviews myself if need be, but I'm quite new to Cocoa and can't seem to find any articles explaining how to do such a thing. Can someone point me in the right direction?
Anthony
The true answer is to set the maxItemSize to 0,0(NSZeroSize
). Otherwise, it is computed.
[self.collectionView setMaxItemSize:NSZeroSize];
This can be set in awakeFromNib
.