从项目内拖动在NSCollectionView中进行选择

时间:2018-02-13 10:54:35

标签: cocoa nscollectionview nscollectionviewitem

我有一系列项目,我在NSCollectionView中显示它们。选择和多项选择均已启用。

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

如果我们将文字和图片视为单个项目,我想要这样的照片。

enter image description here

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

提前谢谢。

1 个答案:

答案 0 :(得分:1)

在项目视图的班级中实施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;
}