1

我有一系列在 NSCollectionView 中展示的项目。选择和多选都启用。

用户可以通过拖动选择项目(即通过拖动标记项目)。但是,当用户开始从集合视图背景或项目之间的空间(而不是项目上)拖动时,这有效,但我希望在项目上开始拖动时也可以。

如果我们将文本和图像视为单个项目,我想要类似这张照片的东西。

在此处输入图像描述

图片来源: http: //osxdaily.com/2013/09/16/select-multiple-files-mac-os-x/

先感谢您。

4

1 回答 1

3

在项目视图的类中实现hitTest(_:)以使项目“透视”以进行点击。当用户在项目视图中单击时,返回集合视图而不是项目视图。

override func hitTest(_ point: NSPoint) -> NSView? {
    var view = super.hitTest(point)
    if view == self {
        repeat {
            view = view!.superview
        } while view != nil && !(view is NSCollectionView)
    }
    return view;
}
于 2018-02-20T13:51:24.157 回答