Swift中的NSCollectionView选择处理

时间:2015-01-31 09:34:08

标签: swift nscollectionview

与斯威夫特一起学习,我整天都在这里,但收效甚微:

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

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

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

1 个答案:

答案 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
    }
  }

从那里开始,您可以在集合视图类,代理或任何需要的内容中发送通知或调用函数。