gpt4 book ai didi

cocoa - NSCollectionView 可以自动调整其 subview 的宽度以显示一列

转载 作者:行者123 更新时间:2023-12-03 16:05:17 27 4
gpt4 key购买 nike

我有一个 NSCollectionView,其中包含 CustomViews 的集合。最初,它将 subview 像网格一样平铺成列和行。然后,我将 IB 中的 Columns 属性设置为 1,因此现在它只是在行中一个接一个地显示它们。但是,即使我的 CustomView 宽度为 400 像素,它设置为自动调整大小,NSCollectionView 宽度为 400 像素,并且设置为 1 列, subview 的绘制宽度约为 80 像素。

我知道我可以通过调用电话来解决这个问题:

CGFloat width = collectionView.bounds.size.width;
NSSize size = NSMakeSize(width, 85);
[collectionView setMinItemSize:size];
[collectionView setMaxItemSize:size];

但是将此代码放入我的 WindowControllerawakeFromNib 方法中只会在程序启动时设置正确的宽度。当我调整窗口大小(并且 NSCollectionView 按照我指定的方式自动调整大小)时,CustomView 保持其初始设置的宽度。

如果需要的话,我很乐意自己负责调整 subview 的大小,但我对 Cocoa 还很陌生,似乎找不到任何解释如何做这样的事情的文章。有人能指出我正确的方向吗?

安东尼

最佳答案

真正的答案是将 maxItemSize 设置为 0,0(NSZeroSize)。否则,将进行计算。

[self.collectionView setMaxItemSize:NSZeroSize];

这可以在awakeFromNib中设置。

关于cocoa - NSCollectionView 可以自动调整其 subview 的宽度以显示一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2107755/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com