gpt4 book ai didi

swift - NSCollectionView 在创建项目时崩溃

转载 作者:可可西里 更新时间:2023-11-01 00:35:48 25 4
gpt4 key购买 nike

我的 NSCollectionView 在调用 makeItem(withIdentifier identifier: String, for indexPath: IndexPath) 时崩溃。 numberOfItemsInSection 返回正确的值。如果我在 viewDidLoad 而不是 itemForRepresentedObject 中调用 makeItem...,我会看到一个错误,指示 indexPath 超出范围。怎么会这样?

Collection View 加载如下:

class TagCollectionViewController: NSViewController, NSCollectionViewDataSource {

fileprivate static let itemIdentifier = "TagItem"

@IBOutlet var collectionView: NSCollectionView!
fileprivate var tags = List<Tag>.init()

override func viewDidLoad() {
super.viewDidLoad()

let nib = NSNib(nibNamed: "TagCollectionViewItem", bundle: nil)
collectionView.register(nib, forItemWithIdentifier: TagCollectionViewController.itemIdentifier)

collectionView.dataSource = self
}

(List集合是一个Realm类)

viewWillAppear() 期间,标签集合从 ReSwift 状态填充:

override func viewWillAppear() {
for image in mainStore.state.selectedImages {
for tag in image.tags {
tags.append(tag)
}
}

super.viewWillAppear()
}

最佳答案

解决了。

当我为项目创建 .xib 时,我添加了一个 NSCollectionViewItem 对象,但没有将 View 连接到我的自定义 View 。

enter image description here

回顾一下,对于任何遇到这种情况的人来说,创建 NSCollectionViewItem 的步骤是:

  1. 创建 nib 并配置您的 View
  2. NSCollectionViewItem 对象添加到您的 Nib
  3. 将您的 View (以及任何其他 View )连接到对象
  4. 在您的 View Controller 中使用 collectionView 注册 nib

关于swift - NSCollectionView 在创建项目时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42890181/

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