Как я могу определить, была ли отменена операция перетаскивания с помощью NSDraggingInfo или подобного? - PullRequest
3 голосов
/ 12 июля 2010

Я создал подкласс NSImageView и реализовал неофициальный протокол для перетаскивания изображений между другими экземплярами того же класса.Я сохраняю ссылку на изображение вида до операции перетаскивания и могу вернуть его к указанному изображению с учетом определенных критериев.

Однако я не могу определить, была ли операция перетаскиванияотменен.Я знаю, что метод draggingEnded вызывается, но он также вызывается, когда перетаскивание прошло успешно.Есть идеи?

1 Ответ

3 голосов
/ 11 июля 2011

Я столкнулся с аналогичным требованием. Тот факт, что вы можете проверить аргумент operation, переданный методу протокола NSDraggingSource draggedImage:endedAt:operation: для обнаружения отмены перетаскивания, не очень хорошо задокументирован.

В методе draggedImage:endedAt:operation: просто добавьте следующую проверку:

if (operation == NSDragOperationNone)
    return;

// Otherwise perform any drag completion tasks.
...