设置
我有一个NSCollectionView
. 我在View Prototype
. 我已经成功地设置了绑定,所以Card Title
并action
得到了填充。(下图1)
目标
当我单击复选框时,我想运行一个函数来访问已经能够访问的特定CardModel
内容。View Prototype
然后我会相应地操作它的数据。
研究
我在 SO 上找到了这篇文章:获取 NSCollectionViewItem NSButton click 的代表对象值,它很好地描述了我的情况。不幸的是,答案是没有特定的代码。以下是建议:
因此,首先,将按钮单元格的表示对象设置为拥有该按钮的集合视图项。(您可以在 nib 编辑器中执行此操作。)然后,在您的操作方法中,获取按钮的单元格,然后是单元格的表示对象(即项目),然后是项目的表示对象。
看起来很简单,对吧?
尝试的解决方案
我创建了一个方法cardCheckBoxClicked:
并将其连接到复选框。
根据上面的建议,我将button cell
的插座连接representedObject
到Card Collection View Item
. (图2)
然后我尝试在代码中获取Card Collection View Item
's 。representedObject
来自MainWindowController.h
:
-(IBAction)cardCheckBoxClicked:(id)sender
{
CardModel* cModel = [[sender representedObject] representedObject];
NSLog(@"card title: %@",cModel.title);
}
错误
当我单击复选框时,我收到以下错误:
-[NSButton representedObject]: unrecognized selector sent to instance 0x6080001581b0
问题!
那么 -我如何访问button cell
's 表示的对象?我误解了上面给出的建议吗?如何成功访问我需要的数据?
图片(参考)
绑定示例
表示对象连接