NSTableView перетащите заморозить док - PullRequest
0 голосов
/ 20 марта 2019

Когда я перетаскиваю элемент NSTableView (представление на основе) поверх док-станции, док-станция зависает. То есть он делает эффект джинна при входе в область дока, но затем просто застревает.

Я реализовал:

func tableView(_ tv: NSTableView, pasteboardWriterForRow row: Int)
     -> NSPasteboardWriting?

чтобы сделать строку перетаскиваемой, она возвращает собственный NSObject, реализующий NSPasteboardWriting, на самом деле ничего особенного (объявляет строку и пользовательский тип).

Кроме того, D & D прекрасно работает в приложении. Это только для внешних перетаскиваний, когда он начинает терпеть неудачу.

В: Есть идеи, что я могу делать неправильно? : -)

Пример кода: https://gist.github.com/helje5/48728983951ab3362af43b967c554475

P.S .: У меня также есть собственное представление, реализующее саму NSDraggingSource, и это, кажется, работает просто отлично.

Demo GIF

1 Ответ

1 голос
/ 23 марта 2019

Когда элемент, который нельзя отбросить за пределы приложения, перетаскивается через Dock, анимация Dock останавливается. Позвоните

func setDraggingSourceOperationMask(_ mask: NSDragOperation, forLocal isLocal: Bool)

с forLocal равно false, чтобы сделать предмет доступным вне приложения.

...