3

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

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

ответ

3

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

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

if (operation == NSDragOperationNone) 
    return; 

// Otherwise perform any drag completion tasks.