2017-02-20 2 views
2

Ich möchte eine Aktion durch Doppelklicken auf ein Element innerhalb einer implementieren. Bei der Verwendung des mouseDown Ereignis in der NSCollectionViewItem keine Sammlung Ansicht Delegatmethode wird mehr gefeuert noch hat die Eigenschaft Items isSelected Arbeit:MouseDown-Ereignis verhindert NSCollectionView Delegate-Methoden

die mouseDown Ereignis in der NSCollectionViewItem.swift:

override func mouseDown(with event: NSEvent) { 

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

Wie muss ich auf Ereignisse behandeln auf CollectionViewItems und CollectionView Delegierten Methoden gleichzeitig?

Anders als NSTableview oder NSOutlineView gibt es keine doubleAction Methode für NSCollectionView umgesetzt. Was ist traurig.

Vielen Dank!

+0

Mögliches Duplikat von [So fangen Sie DoubleClick-Ereignisse von NSOutlineView in ViewController?] (Http://stackoverflow.com/questions/41989426/how-to-catching-doubleclick-events-from-nsoutlineview-in-viewcontroller) – Willeke

+0

@Willeke, keine doppelte Antwort. Leider ist in 'NSCollectionView' keine' doubleAction' Methode integriert. – JFS

+1

Sorry, ich habe 'NSCollectionView' und' NSOutlineView' (wieder) gemischt. Wenn Sie nicht selbst mit einzelnen Klicks umgehen, rufen Sie 'super.mouseDown (with: event)' auf. – Willeke

Antwort

0

Wenn Sie mouseDown(with event: NSEvent) überschreiben, dann denken Sie daran, super.mouseDown(with: event) darin zu nennen; Andernfalls werden Ihre CollectView-Delegate-Methoden nicht aufgerufen.

Ich antworte dem nicht, @Willeke Lösung im obigen Kommentar zu stehlen, aber nur, weil ich nicht möchte, dass sein Kommentar (perfekt auf Punkt) von jemand anderem vermisst wird! Wenn Willeke antworten möchte, lösche ich das.

Verwandte Themen