我正在尝试为我的 NSCollectionViewItem 提供动态大小。我希望它们的大小取决于它们的内容和我定义的约束。
为此,我已将以下内容添加到包含 NSCollectionView 的视图控制器中:
extension ViewController : NSCollectionViewDelegateFlowLayout {
func collectionView(_ collectionView: NSCollectionView, layout collectionViewLayout: NSCollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> NSSize{
let item = collectionView.item(at: indexPath)
if let viewItem = item as NSCollectionViewItem? {
return viewItem.view.fittingSize
}
return NSSize(width: 200, height: 100)
}
}
哪个抛出异常。
An uncaught exception was raised
*** -[__NSArrayM objectAtIndex:]: index 1 beyond bounds [0 .. 0]
我不知道它来自哪里,我试图抓住它,但 xcode 说它item(at:)
不会引发异常。
编辑:但事实上确实如此,我有一个异常断点,它闯入item(at:)
除了向 Apple 发送错误报告之外,有人还有其他想法吗?而且由于 item(at:) 不应该抛出错误,所以 do catch bloc 是无效的