gpt4 book ai didi

objective-c - 如何从 NSCollectionViewItem 的 View 中获取 representedObject?

转载 作者:太空狗 更新时间:2023-10-30 03:45:25 51 4
gpt4 key购买 nike

我有一个在我的 CollectionView 的每个项目中使用的 View 。从我的 View 中,我有一个指向 CollectionViewItem 的 IBOutlet,并且已将其连接到 Interface Builder 中。我想在我的 View 代码中从 representedObject(这是一个核心数据对象)访问一个值。这是我正在尝试做的事情的一个例子——访问被表示对象的序列值:

在.h文件中:

IBOutlet NSCollectionViewItem *item; // Connected in IB

在.m文件中

NSString *seq = [[item representedObject] valueForKey:@"seq"];
NSLog(@"Seq: %@", seq); // returns Seq: (null)

我知道 seq 已填充,因为我使用 representedObject.seq 键路径将它绑定(bind)到 IB 中 CollectionViewItem View 中的标签,并且有效。

知道为什么当我尝试在 View 代码中访问 seq 的值时它返回 null 吗?

最佳答案

很可能 NSCollectionViewItem 没有将 IBOutlet 连接从它们的项目 View 复制到原型(prototype) NSCollectionViewItem。因此,item 为 nil,因此 seq 也将为 nil。

访问 NSCollectionViewItem 实例的典型模式是绑定(bind)到原型(prototype)。你提到你做了这个并且它有效。这仅仅是因为这是典型的、受支持的方式。

如果您确实需要以绑定(bind)无法提供的方式直接连接到项目,您可能必须手动设置它。一种方法是覆盖 NSCollectionViewItem 的 -copyWithZone:,调用 super,然后手动建立连接。

关于objective-c - 如何从 NSCollectionViewItem 的 View 中获取 representedObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1123053/

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