NSButton 绑定到 NSCollectionViewItem: representedObject?
NSButton binding to NSCollectionViewItem: representedObject?
当我预先将按钮添加到 NSCollectionViewItem 的视图时,我可以在检查器中绑定它的操作:
哪个没问题。
现在我想在视图的 mouseDown:
中以编程方式创建该按钮,我应该为 bind:
选项分配什么以获得与检查器中的 "Bind to: Collection View Item" 相同的结果?
代码如下:(Swift)
aButton!.bind(
"argument",
toObject: ???, // <- what should I set here?
withKeyPath: "representedObject",
options: options
)
编辑: 我能够通过子类化 NSCollectionView 然后覆盖 newItemForRepresentedObject:
来分配 representedObject 到子类视图。
还是想知道有没有不用子类化的方法NSCollectionView.
您应该绑定到 NSCollectionViewItem
实例,该实例拥有按钮是其后代的视图。
您从什么上下文创建按钮并尝试绑定它?这是在集合视图的控制器中吗?还是在集合视图项本身(它是集合视图项视图的控制器)中?或者它可能在自定义视图中 class,尽管那会有点奇怪。
从集合视图的控制器中,您可以使用-itemAtIndex:
获取相关的集合视图项。
从集合视图项目中,您只需使用 self
。但是,在这种情况下,绑定并不能真正为您带来太多好处。您也可以只设置按钮的 target
和 action
并在操作方法中使用 representedObject
做一些事情。
如果您是从视图中执行此操作,则需要一种方法来获取对集合视图项的引用。您应该在连接到 NIB 中的集合视图项的视图上添加一个弱插座。然后,您将使用该出口获取该 bind()
调用的集合视图项。
当我预先将按钮添加到 NSCollectionViewItem 的视图时,我可以在检查器中绑定它的操作:
哪个没问题。
现在我想在视图的 mouseDown:
中以编程方式创建该按钮,我应该为 bind:
选项分配什么以获得与检查器中的 "Bind to: Collection View Item" 相同的结果?
代码如下:(Swift)
aButton!.bind(
"argument",
toObject: ???, // <- what should I set here?
withKeyPath: "representedObject",
options: options
)
编辑: 我能够通过子类化 NSCollectionView 然后覆盖 newItemForRepresentedObject:
来分配 representedObject 到子类视图。
还是想知道有没有不用子类化的方法NSCollectionView.
您应该绑定到 NSCollectionViewItem
实例,该实例拥有按钮是其后代的视图。
您从什么上下文创建按钮并尝试绑定它?这是在集合视图的控制器中吗?还是在集合视图项本身(它是集合视图项视图的控制器)中?或者它可能在自定义视图中 class,尽管那会有点奇怪。
从集合视图的控制器中,您可以使用-itemAtIndex:
获取相关的集合视图项。
从集合视图项目中,您只需使用 self
。但是,在这种情况下,绑定并不能真正为您带来太多好处。您也可以只设置按钮的 target
和 action
并在操作方法中使用 representedObject
做一些事情。
如果您是从视图中执行此操作,则需要一种方法来获取对集合视图项的引用。您应该在连接到 NIB 中的集合视图项的视图上添加一个弱插座。然后,您将使用该出口获取该 bind()
调用的集合视图项。