7


1

だから私は一つのソースから複数の潜在的な目的地にオブジェクトをドラッグしたいです。 オブジェクトがそれぞれの目的地の上にあるとき、私はそれが異なる画像に「変形」することを望みます。 NSDragSourceの観点からこれを行うための簡単な方法はありますか?

4 Answer


16


ドラッグ先のハンドラメソッドで NSDraggingInfo`の enumerateDraggingItemsWithOptions: `メソッドを使うことでそうすることができます。 - `NSDraggingDestination`プロトコルの実装)

例えば:

-  (NSDragOperation)draggingUpdated:(id <NSDraggingInfo>)送信者{NSImage * newDragImage =;} [sender enumerateDraggingItemsWithOptions:0 forView:sender.draggingSourceクラス:[NSArray arrayWithObject:[NSPasteboardItemクラス]] theFrame.size = newDragImage.size; [draggingItem setDraggingFrame:theFrameの内容:newDragImage]; * stop = NO。 ;]]; }


5


Joshua Nozziがこれを行うための素晴らしい方法を投稿しています。http://joshua.nozzi.name/2009/10/jlndrageffectmanager/


4


NSDraggingInfoのenumerateDraggingItemsWithOptionsメソッドを調べてください。


3


ドラッグソースAPIだけを使用してこれを行う方法はありません。

Interface Builderを見れば、それはあなたが望むものと似たようなことをします。 ボタンをライブラリの外にドラッグすると、ドラッグの途中でボタンがアニメーションします。

ほとんどの人によると、Appleがこれを行っている方法はドラッグ画像を小さな透明な画像にすることです。 それから彼らはウィンドウを作成し、それをマウスに従わせる。 その後、ウィンドウを使用して任意の種類のアニメーションを作成できます。