如何强制 NSView 子视图调整大小 "now"?

How to force a NSView subviews to resize "now"?

我有一个 NSCollectionView,它的项目是动态调整大小的。

当 [collectionView makeItemWithIdentifier:reuseIdentifier forIndexPath:indexPath] 返回项目时,其视图具有所需的大小

但是

子视图尚未相应调整大小,它们仍然具有 xib 大小。

问题是在设置项目的属性时,我需要知道所有子视图的最终大小(因为我正在优化一些图像)。

如何在从 makeItemWithIdentifier:forIndexPath 获取项目后强制调整子视图的大小:?

或者,我怎样才能知道它们未来的大小?

或任何其他解决方案?

我终于开始优化图像计算,而不是在使用 makeItemWithIdentifier:reuseIdentifier forIndexPath:indexPath: 创建项目的那一刻,因为我没有找到知道最终大小的方法。

我在第一个 drawRect: 调用时开始图像优化图像计算。

在这次调用中,我快速绘制了一张未优化的图像,并在后台线程中启动了优化图像计算。完成后,我向视图发送 setNeedsDisplay:YES 消息,然后显示优化后的图像。