与斯威夫特一起学习,我整天都在这里,但收效甚微:
需要知道何时选择NSCollectionView中的项目。最终目标是使项目突出显示,并能够使用删除键从集合中删除它。我的NSCollectionView绑定到ArrayController以获取内容并发送选择索引,因此看起来我需要观察ArrayController以进行选择更改,但是没有看到任何有用的委托方法。原型视图只有一个文本域。
我在这里和其他地方跟踪了obj-c示例(在Swift中没有找到),但Swift NSCollectionViewItem没有覆盖setSelected方法。它有一个选定的财产。
如何在Swift中选择NSCollectionViewItem时获得通知?
答案 0 :(得分:6)
最简单的解决方案是覆盖所选属性,并在设置时做出反应:
class CollectionSonaViewItem: NSCollectionViewItem {
override var isSelected: Bool {
didSet {
// set background color to indicate selection
self.view.layer?.backgroundColor = (isSelected ? NSColor.blue.cgColor : NSColor.clear.cgColor)
// do more stuff
}
}
从那里开始,您可以在集合视图类,代理或任何需要的内容中发送通知或调用函数。