我遇到了一个问题,似乎我可以将项添加到集合视图中,并拥有我从NSCollectionViewItem子类创建的原型单元格,但是当我试图更改标签以显示来自is get错误的数据时,因为它们是零的,即使我从接口生成器连接了它们。
我还通过向单元格攻击mouseup函数来打印representedObject属性,它运行良好。只有当我试图分配给显然不存在的网点的stringValue时,它才会崩溃。
在下面,您可以看到我的故事板和项目视图的控制器。Label对象在下面表示为两个@IBOutlets。representedObject被别名为var morpheme : Morpheme?

在主窗口控制器中,我正在测试如何将Morpheme对象添加到集合中,并使用我想要填充标签的测试值。

显示显示的是列表中的单元格,但当我单击它们时,它会崩溃,原因是来自未实例化的出口的nil值。如果您查看控制台,Morpheme 3已成功打印,因此数据模型将其输入。还有什么我需要做的吗?有很多关于使用绑定菜单的东西,但是我并没有经常使用它。

发布于 2016-06-28 15:12:04
这是一个非常有趣的问题,它已经获得了很大的吸引力。问题似乎是可可的一个缺陷,所以当项目创建的原型,他们的插座不上钩。
看看在创建原型时会发生什么:

然后,当创建实际实例时,出口为零:

因此,我的建议是使用以下两种解决方案之一:
或者只需查看带有关键字的示例:"makeItemWithIdentifier“

下面是我在控制器中的代码:
class ViewController: NSViewController {
dynamic var collectionViewData = [String]()
@IBOutlet weak var collectionView: NSCollectionView!
override func viewDidLoad() {
super.viewDidLoad()
guard let proto = self.storyboard?.instantiateControllerWithIdentifier("collectionViewItem") as? CustomCollectionViewItem else { return }
collectionView.itemPrototype = proto
collectionViewData.append("One")
collectionViewData.append("Two")
}我的最后一张图片是(您可以看到我将标签绑定到数组中的actaul字符串):

https://stackoverflow.com/questions/38069496
复制相似问题