2017-02-20 5 views
2

Я хотел бы реализовать действие, дважды щелкнув элемент в пределах NSCollectionView. При использовании mouseDown события в NSCollectionViewItem не метод сбора зрения делегата не увольняет больше тления не свойство элементов isSelected работы:Событие MouseDown предотвращает методы делегирования NSCollectionView

mouseDown события в NSCollectionViewItem.swift:

override func mouseDown(with event: NSEvent) { 

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

Как мне нужно обрабатывать событие нажатия на CollectionViewItems и CollectionView делегировать методы одновременно? не

Кроме NSTableview или NSOutlineView там не реализован doubleAction метод NSCollectionView. Что грустно.

Спасибо!

+0

Возможный дубликат [Как перехватывать события DoubleClick из NSOutlineView в ViewController?] (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 (с: event)'. – Willeke

ответ

0

Если вы переопределяете mouseDown(with event: NSEvent), тогда не забудьте позвонить в super.mouseDown(with: event); в противном случае ваши методы делегирования collectView не будут вызываться.

Я отвечаю на это, чтобы не украсть решение @Willeke в комментарии выше, но только потому, что я не хочу, чтобы его комментарий (отлично на месте) был упущен кем-то другим! Если Виллеке хочет ответить, я удалю это.

Смежные вопросы