一个简单的 Hack 用来解决 NSCollectionView
在 NSStackView
里不显示内容的方法。
解决的方法也很简单,就是重写 intrinsicContentSize
返回 collectionViewLayout.collectionViewContentSize
这个真正的大小。
下面是示例代码:
class RBCollectionView: NSCollectionView { override var intrinsicContentSize: NSSize { // 这里我只关心高度,宽度我不关心,如果你关心宽度得注意一下。 return CGSize( width: NSView.noIntrinsicMetric, height: collectionViewLayout?.collectionViewContentSize.height ?? NSView.noIntrinsicMetric) } override func layout() { super.layout() // 因为 collectionViewContentSize 会变化,所以需要重新计算 invalidateIntrinsicContentSize() } }
算是给网络留下点东西。