У меня есть NSCollectionView , который отображает некоторые файлы:
Что я хочу ...
Значки файлов отображаются в NSImageView.
Что быбыть хорошим подходом для обеспечения такой функциональности?
Большое спасибо!
Вам нужно вызвать declareTypes:owner: в представлении коллекции и передать типы монтажных панелей, которые вы хотите перетащить. В вашем случае вы хотите NSURLPboardType.
declareTypes:owner:
NSURLPboardType
Все, что вам нужно сделать, это реализовать три метода делегата, связанных с перетаскиванием, в вашем NSCollectionView делегате .
NSCollectionView
Вы должны вернуть YES из этого метода:
YES
collectionView:canDragItemsAtIndexes:withEvent:
Вы можете вернуть пользовательское изображение перетаскивания для каждого элемента, используя этот метод:
collectionView:draggingImageForItemsAtIndexes:withEvent:offset:
И вы записываете элементы в монтажный картон, используя этот метод:
collectionView:writeItemsAtIndexes:toPasteboard:
В вашем случае вы бы записали URL-адрес перетаскиваемого элемента в монтажную панель при реализации этого метода.
Если вы не понимаете, как работать с картоном, вам следует прочитать руководство Перетаскивание тем программирования .