Fledge 的碎碎念

一个简单的 Hack 用来解决 NSCollectionViewNSStackView 里不显示内容的方法。
解决的方法也很简单,就是重写 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()
    }
}

算是给网络留下点东西。

Copyright © Powered by Wordpress