2017-02-18 156 views
1

我有一個簡單的1部分NSCollectionView,並且變得瘋狂,因爲沒有得到拖放工作。集合視圖具有自定義集合視圖項目,標籤顯示自定義對象的數據。一切工作,直到拖動的項目應該在新的位置之間下降的點。但是,當我拖動項目時,在放置目的地處沒有放置指示符(通常是間隙)。我發現下面的NSCollectionView委託沒有被調用。NSCollectionView`validateDrop`委託沒有被調用

func collectionView(_ collectionView: NSCollectionView, validateDrop draggingInfo: NSDraggingInfo, 
        proposedIndexPath proposedDropIndexPath: AutoreleasingUnsafeMutablePointer<NSIndexPath>, 
        dropOperation proposedDropOperation: UnsafeMutablePointer<NSCollectionViewDropOperation>) -> NSDragOperation { 

    print("validateDrop", proposedDropIndexPath) // never shows up in the console 

    if proposedDropOperation.pointee == NSCollectionViewDropOperation.on { 
     proposedDropOperation.pointee = NSCollectionViewDropOperation.before 
    } 
     print("validateDrop", proposedDropIndexPath) 
     return NSDragOperation.move 
    } 

我怎麼想? 謝謝!

編輯1

我只希望使用拖放允許重新排序集合視圖中的項目。它不打算在集合視圖中拖動外部內容。

+0

[用於將實施例和Drop內部NSCollectionView]的可能的複製(http://stackoverflow.com/questions/42329390/example-for-drag-and-drop-inside-nscollectionview) – Willeke

回答

0

您是否註冊過拖動類型的collectionview?

collectionView.registerForDraggedTypes([NSPasteboard.PasteboardType]) 
相關問題