gpt4 book ai didi

objective-c - NSButton 绑定(bind)到 NSCollectionViewItem : representedObject?

转载 作者:行者123 更新时间:2023-11-28 07:05:48 41 4
gpt4 key购买 nike

当我预先将按钮添加到 NSCollectionViewItem 的 View 时,我可以在检查器中绑定(bind)它的操作:

enter image description here

这没有问题。

现在我想在 View 的 mouseDown: 中以编程方式创建该按钮,我应该将什么分配给 bind: 选项以获得与“绑定(bind)”相同的结果to: Collection View Item"in inspector?

这是代码:(Swift)

aButton!.bind(
"argument",
toObject: ???, // <- what should I set here?
withKeyPath: "representedObject",
options: options
)

编辑:我能够通过子类化 NSCollectionView 然后覆盖 newItemForRepresentedObject: 来分配 representedObject到子类 View 。

仍然想知道是否有不子类化 NSCollectionView 的方法。

最佳答案

您应该绑定(bind)到 NSCollectionViewItem 实例,该实例拥有按钮是其后代的 View 。

您从什么上下文创建按钮并尝试绑定(bind)它?这是在 Collection View 的 Controller 中吗?还是在 Collection View 项本身(它是 Collection View 项 View 的 Controller )中?或者它可能在自定义 View 类中,尽管这会有点奇怪。

从 Collection View 的 Controller 中,您可以使用-itemAtIndex: 获取相关的 Collection View 项。

从 Collection View 项中,您只需使用 self。但是,在这种情况下,绑定(bind)并不能真正为您带来太多好处。您也可以只设置按钮的 targetaction 并在 action 方法中使用 representedObject 做一些事情。

如果您是从 View 中执行此操作,那么您需要一种方法来获取对 Collection View 项的引用。您应该在连接到 NIB 中的 Collection View 项的 View 上添加一个弱 socket 。然后,您将使用该导出获取该 bind() 调用的 Collection View 项。

关于objective-c - NSButton 绑定(bind)到 NSCollectionViewItem : representedObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30661009/

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