NSImageViewのサブクラスを作成し、同じクラスの他のインスタンス間で画像をドラッグするための非公式のプロトコルを実装しました。ドラッグ操作の前にビューの画像への参照を保持しており、特定の基準を指定して、ビューをその画像に戻すことができます。
しかし、ドラッグ操作がキャンセルされたかどうかを検出できないようです。draggingEndedメソッドが呼び出されることは知っていますが、ドラッグが成功したときにも呼び出されます。何か案は?
NSImageViewのサブクラスを作成し、同じクラスの他のインスタンス間で画像をドラッグするための非公式のプロトコルを実装しました。ドラッグ操作の前にビューの画像への参照を保持しており、特定の基準を指定して、ビューをその画像に戻すことができます。
しかし、ドラッグ操作がキャンセルされたかどうかを検出できないようです。draggingEndedメソッドが呼び出されることは知っていますが、ドラッグが成功したときにも呼び出されます。何か案は?
同様の要件が発生しました。operation
NSDraggingSourceプロトコルメソッドに渡された引数を調べてdraggedImage:endedAt:operation:
ドラッグキャンセルを検出できるという事実は、十分に文書化されていません。
このdraggedImage:endedAt:operation:
メソッドに、次のチェックを追加するだけです。
if (operation == NSDragOperationNone)
return;
// Otherwise perform any drag completion tasks.