Swift中的NSCollectionView选择处理

Jan*_*ell 4 nscollectionview swift

和斯威夫特一起学习,我整天都在这里,但进展甚微:

需要知道何时选择NSCollectionView中的项目.最终目标是使项目突出显示,并能够使用删除键从集合中删除它.我的NSCollectionView绑定到ArrayController以获取内容并发送选择索引,因此看起来我需要观察ArrayController以进行选择更改,但是在那里看不到任何有用的委托方法.原型视图有一个文本字段.

我在这里和其他地方跟踪了obj-c示例(在Swift中没有找到),但是Swift NSCollectionViewItem没有要覆盖的setSelected方法.它有一个选定的财产.

如何在Swift中选择NSCollectionViewItem时获得通知?

Vol*_*ker 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
    }
  }
Run Code Online (Sandbox Code Playgroud)

从那里,您可以在集合视图类,其委托或任何需要的位置发送通知或调用函数.