我有一个NSCollectionView
包含CustomViews
的集合。最初它将子视图平铺成像网格一样的列和行。然后我将IB中的Columns
属性设置为1,所以现在它只是按行显示它们。但是,尽管我的CustomView
的宽度是400像素,但它已设置为自动调整大小,NSCollectionView
的宽度为400像素,并且它设置为1列,子视图的宽度大约为80像素。NSCollectionView可以自动调整其子视图的宽度以显示一列
我知道我可以通过调用解决这个问题:
CGFloat width = collectionView.bounds.size.width;
NSSize size = NSMakeSize(width, 85);
[collectionView setMinItemSize:size];
[collectionView setMaxItemSize:size];
但将这个代码在我WindowController
的awakeFromNib
方法只在程序启动时设置正确的宽度。当我调整窗口大小(并且按照我指定的方式自动调整大小时),CustomViews保持其最初设定的宽度。
如果需要,我很乐意照顾自己调整子视图的大小,但对于Cocoa我很新,而且似乎找不到解释如何做这种事情的任何文章。有人能指引我朝着正确的方向吗?
安东尼
现在已经发现,我可以将我的WindowController设置为Window的委托并通过windowDidResize接收调整大小通知。 所以我现在用的每一个调整窗口大小来设置最大和最小的商品尺寸的时间上面的代码。 能正常工作的窗口增长,但由于某些原因增加最小/最大的商品尺寸导致的CollectionView的边界从不缩水,即使窗口一样。 因此,即使视觉上的CollectionView作为收缩时我调整窗口的大小,它的界限从来不,还有我的子视图做也不! – littlecharva 2010-01-21 22:04:42
你有没有找到一种方法来自动执行此操作? – tofutim 2014-02-25 16:37:41