Я понимаю, как заставить работать перетаскивание для NSCollectionView
, но я не могу остановить его «подъем» элементов за пределы представления.
Мое текущее решение состоит в том, чтобы не реализовывать
func collectionView(_ collectionView: NSCollectionView, pasteboardWriterForItemAt indexPath: IndexPath) -> NSPasteboardWriting?
от NSCollectionViewDelegate
, чтобы убедиться, что
func collectionView(_ collectionView: NSCollectionView, draggingImageForItemsAt indexPaths: Set<IndexPath>, with event: NSEvent, offset dragImageOffset: NSPointPointer) -> NSImage
Вызывается IS, где я могу предоставить свои собственные перетаскиваемые изображения. Однако они не стекаются и не отображают значок, показывающий, сколько элементов перетаскивается.
Проблема в том, что когда я реализую предыдущий метод, кажется, что ничего из того, что я делаю (включая переопределение draggingImageComponents
NSCollectionViewItem), не мешает перетаскиванию «поднять» элемент из представления коллекции, оставляя после себя пустое пространство.
Перетаскивание изображений в Photos.app и файлов в Finder.app (представление значков) не поднимает элемент, поэтому, надеюсь, это возможно.