Как я могу определить, была ли отменена операция перетаскивания с использованием NSDraggingInfo или подобного?
Я создал подкласс NSImageView и реализовал неофициальный протокол для перетаскивания изображений между другими экземплярами того же класса. Я сохраняю ссылку на изображение вида до операции перетаскивания и могу вернуть его к указанному изображению с учетом определенных критериев.
Тем не менее, я не могу определить, была ли отменена операция перетаскивания. Я знаю, что метод draggingEnded вызывается, но он также вызывается, когда перетаскивание прошло успешно. Есть идеи?
1 ответ
Я столкнулся с аналогичным требованием. Тот факт, что вы можете изучить operation
аргумент передается методу протокола NSDraggingSource draggedImage:endedAt:operation:
обнаружение отмены перетаскивания не очень хорошо задокументировано.
в draggedImage:endedAt:operation:
Метод просто добавьте следующую проверку:
if (operation == NSDragOperationNone)
return;
// Otherwise perform any drag completion tasks.