单击集合视图之前,垂直 NSTableView 中的水平 NSCollectionView 不会 select

Horizontal NSCollectionView in vertical NSTableView does not select until collection view is clicked

我有一个关于 NSCollectionView 的奇怪问题。基本上,我有一个在垂直滚动 table 视图中水平滚动的集合视图。我已经在我的 NSTableCellView 子类中实现了集合视图的数据源和委托。数据源工作正常,集合视图能够加载一些图像。

问题来了。我希望集合视图是 selectable。我已将此委托方法实现到我的 table 单元格视图子类中:

func collectionView(_ collectionView: NSCollectionView, didSelectItemsAt indexPaths: Set<IndexPath>) {
    // Do things here
}

此方法有效,但有一个警告。只有当我先点击集合视图中的空 space 然后选择一个单元格时,它才会被调用。如果我只点击一个单元格,它不会被调用,这对我来说很奇怪。知道如何解决这个问题吗?

我在情节提要中设计了 table 单元格视图,集合视图在情节提要中检查了 SelectableAllow Empty SelectionAllow Multiple Selection 未被选中,因为我不想进行多项选择,但我尝试启用它,但它没有任何改变。

谢谢

子类 NSTableView。在您的子类中,将集合视图及其子视图的 validateProposedFirstResponder(_:for:) 覆盖为 return true(或者可能只是 return true 始终)。