nSCollectionView,如何在双击时发送代表代表到代码?
-
21-12-2019 - |
题
我在核心数据存储上首次使用绑定,其中一个到我的实体上的关系,我使用显示图像和标题的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子类接收调用时,调用主控制器类方法并通过代表。
不隶属于 StackOverflow