【发布时间】:2017-01-10 13:57:08
【问题描述】:
出于某种原因,我的NSCollectionView(它使用我编写的自定义布局)在我单击一个项目时调用其委托的collectionView(_:didSelectItemsAt:) 函数,但当我单击它时却不是同一个委托的collectionView(_:didDeselectItemsAt:)。
这是我的基本设置:
class MyCollectionViewContainer: NSViewController {
fileprivate lazy var collectionView: NSCollectionView = {
let collectionView = NSCollectionView()
collectionView.delegate = self
collectionView.dataSource = self
collectionView.collectionViewLayout = self.customLayout
collectionView.isSelectable = true
collectionView.allowsEmptySelection = true
collectionView.allowsMultipleSelection = false
}()
}
extension MyCollectionViewContainer: NSCollectionViewDelegate {
func collectionView(_ collectionView: NSCollectionView, didSelectItemsAt indexPaths: Set<IndexPath>) {
print("Selected", indexPaths)
// Mutate data to reflect that selection
}
func collectionView(_ collectionView: NSCollectionView, didDeselectItemsAt indexPaths: Set<IndexPath>) {
print("Deselected", indexPaths)
}
}
永远不会打印“取消选择”...:/
【问题讨论】:
标签: cocoa delegates mouseevent appkit nscollectionview