我有一個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