Swift中的NSCollectionView选择处理

Swift中的NSCollectionView选择处理,swift,nscollectionview,Swift,Nscollectionview,与斯威夫特一起学习,我整天都在做这件事,但进展甚微: 需要知道何时选择了NSCollectionView中的项目。最终目标是使项目高亮显示,并能够使用delete键将其从集合中删除。我的NcollectionView绑定到ArrayController以获取内容并发送选择索引,因此我需要查看ArrayController的选择更改,但在那里看不到任何有用的委托方法。prototype视图只有一个文本字段 我在这里和其他地方遵循了obj-c示例(在Swift中未找到),但Swift NSColle

与斯威夫特一起学习,我整天都在做这件事,但进展甚微:

需要知道何时选择了NSCollectionView中的项目。最终目标是使项目高亮显示,并能够使用delete键将其从集合中删除。我的NcollectionView绑定到ArrayController以获取内容并发送选择索引,因此我需要查看ArrayController的选择更改,但在那里看不到任何有用的委托方法。prototype视图只有一个文本字段

我在这里和其他地方遵循了obj-c示例(在Swift中未找到),但Swift NSCollectionViewItem没有要覆盖的setSelected方法。它有一个选定的属性


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

最简单的解决方案是覆盖选定的属性,并在设置时做出反应:

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
    }
  }
从那时起,您可以发送通知或调用集合视图类、其委托或任何所需的函数