我有一个NSCollectionView,它有NSCollectionViewItem作为子对象。我有NSCollectionView的流布局设置项目的宽度,以填充应用程序启动时的视图宽度,但如果我调整窗口大小,项目保持原始宽度,不再填充视图。有没有什么方法可以让这个大小调整(填充宽度)自动发生,或者是否有一个方法,当调整集合视图大小时(从窗口调整大小)调用,我可以访问以设置项目的宽度来填充视图?
答案 0 :(得分:2)
您所要做的就是覆盖集合视图类,如下所示:
class MyCollectionView: NSCollectionView {
override var frame: NSRect {
didSet {
collectionViewLayout?.invalidateLayout()
}
}
}
这确保了只要集合视图的框架发生更改,它就会使布局无效。