我在核心数据存储上首次使用绑定,其中一个到我的实体上的关系,我使用显示图像和标题的nscollection视图显示子项。

对象是:

Subitems Array Controller (NSArrayController)
Collection View Item (NSCollectionViewItem)
.

控件是:

NSCollectionView
NSView (for the item)
   NSImageView
   NSTextField
.

我已经将nsimageView与Model键路径相结合到Collection View项,如代表eBject.ImagePath和一个值变换器。这一切都很好。

我想要做的是检测到代码中的项目双击该项目,并获得对双击项目的代表的代表的访问权限。

我试图子类别nsimageview,并覆盖鼠标事件的单击事件,然后工作,然后我无法从这里访问ManagedObject上下文和所选对象。我不确定如何做到这一点正确的方式。

感谢任何帮助,我理解这是基本的东西,我必须用绑定实现做一些不正确的东西。

有帮助吗?

解决方案

为Collection View项实现子类,例如CustomCollectionViewitem并更改IB中的集合视图项的类。

子类您的nsimageview还,在此类中句柄双击。创建弱引用委托对象并将此委托将此委托绑定到IB中的CustomCollectionViewitem。

现在,双击时,请点击询问委托,调用您的CustomCollectionViewitem的任何方法以及在CustomCollectionViewitem中,您可以访问代表eviceDobject。

现在,问题是如何进一步将其传递给实际的控制器类。您需要再次在CustomCollectionViewitem中创建弱引用委托,并将此委托绑定到IB中的主控制器类。

所以,当自定义CollectionViewItem从NSImageView子类接收调用时,调用主控制器类方法并通过代表。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top