当NSCollectionViewI的父NSCollectionView更改大小时,更新NSCollectionViewItem的大小

时间:2016-09-20 22:48:18

标签: xcode cocoa nscollectionview

我有一个NSCollectionView,它有NSCollectionViewItem作为子对象。我有NSCollectionView的流布局设置项目的宽度,以填充应用程序启动时的视图宽度,但如果我调整窗口大小,项目保持原始宽度,不再填充视图。有没有什么方法可以让这个大小调整(填充宽度)​​自动发生,或者是否有一个方法,当调整集合视图大小时(从窗口调整大小)调用,我可以访问以设置项目的宽度来填充视图?

1 个答案:

答案 0 :(得分:2)

您所要做的就是覆盖集合视图类,如下所示:

class MyCollectionView: NSCollectionView {
  override var frame: NSRect {
    didSet {
      collectionViewLayout?.invalidateLayout()
    }
  }
}

这确保了只要集合视图的框架发生更改,它就会使布局无效。