Перетащите из приложения Какао в Finder

У меня есть NSCollectionView, который отображает некоторые файлы: введите описание изображения здесь

Я хочу ...

  1. возможность выбрать один файл.
  2. возможность перетащить этот файл на рабочий стол или в другое окно Finder.

Значки файлов отображаются NSImageView.

Что было бы хорошим подходом для предоставления такой функциональности?

Большое спасибо!


person Daniel    schedule 18.03.2012    source источник


Ответы (1)


Вам нужно вызвать _ 1_ в представлении коллекции и передать типы монтажного стола, которые вы хотите перетащить. В вашем случае вы хотите NSURLPboardType.

Все, что вам нужно сделать, это реализовать три метода делегата, связанных с перетаскиванием, в вашем NSCollectionView делегировать.

Вы должны вернуть YES из этого метода:

_ 5_

Вы можете вернуть собственное изображение перетаскивания для каждого элемента, используя этот метод:

_ 6_

И вы записываете элементы на картон, используя этот метод:

_ 7_

В вашем случае вы должны написать URL-адрес перетаскиваемого элемента на монтажный стол в своей реализации этого метода.

Если вы не понимаете, как работать с монтажным столом, вам следует прочитать руководство Темы программирования с помощью перетаскивания.

person Rob Keniger    schedule 19.03.2012
comment
Эй, я еще не мог попробовать, но это звучит многообещающе. Спасибо! Вы всегда даете очень полезные и хорошие ответы! - person Daniel; 19.03.2012
comment
И, если вы используете NSCollectionView или некоторые другие представления, не забудьте вызвать [collectionView setDraggingSourceOperationMask: NSDragOperationEvery forLocal: NO] где-нибудь в awakeFromNib или другом методе инициализации. - person pvshnik; 14.08.2013