2017-02-20 99 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想回答,我會刪除這個。