2017-02-20 53 views
2

我想通过双击NSCollectionView中的一个项目来执行操作。当使用在NSCollectionViewItemmouseDown事件没有集合视图的委托方法再发射也不items属性isSelected工作:MouseDown事件阻止NSCollectionView委托方法

mouseDown事件在NSCollectionViewItem.swift

override func mouseDown(with event: NSEvent) { 

    if event.clickCount > 1 { 
     //do something 
    } 
} 

如何做我需要处理单击事件在CollectionViewItemsCollectionView委托方法在同一时间吗?

除了NSTableviewNSOutlineView有没有实施用于NSCollectionViewdoubleAction方法。这是可悲的。

谢谢!

+0

[如何在ViewController中捕获NSOutlineView中的doubleClick事件?](http://stackoverflow.com/questions/41989426/how-to-catching-doubleclick-events-from-nsoutlineview-in-viewcontroller) – Willeke

+0

@Willeke,没有重复的答案。不幸的是,在集成的NSCollectionView中没有'doubleAction'方法。 – JFS

+1

对不起,我混合了'NSCollectionView'和'NSOutlineView'(再次)。如果您自己不处理单击,请调用'super.mouseDown(with:event)'。 – Willeke

回答

0

如果您覆盖mouseDown(with event: NSEvent),那么请记得在其中调用super.mouseDown(with: event);否则,你的collectionView委托方法将不会被调用。

我回答这个问题不是为了在上面的评论中窃取@Willeke解决方案,而仅仅是因为我不希望他的评论(完全在点上)被别人错过!如果Willeke想回答,我会删除这个。