Ich möchte also ein Objekt von einer Quelle auf mehrere potenzielle Ziele ziehen. Wenn sich das Objekt über jedem Ziel befindet, möchte ich, dass es sich in ein anderes Bild verwandelt. Gibt es einen einfachen Weg, dies aus der Perspektive NSDragSource zu tun?
Es gibt keine Möglichkeit, dies nur mit den Drag-Source-APIs zu tun.
Wenn Sie sich den Interface Builder anschauen, wird etwas Ähnliches wie gewünscht ausgeführt. Wenn Sie eine Schaltfläche aus der Bibliothek ziehen, wird die Schaltfläche in der Mitte des Ziehens animiert.
Nach Meinung der meisten Leute besteht die Art, wie Apple das tut, darin, das Ziehbild zu einem kleinen transparenten Bild zu machen. Dann erstellen sie ein Fenster und lassen es der Maus folgen. Sie können dann das Fenster verwenden, um jede gewünschte Art von Animation auszuführen.
Sie können dies tun, indem Sie enumerateDraggingItemsWithOptions:
method von NSDraggingInfo
in den Handler-Methoden Ihres Ziehziels verwenden (d. h. - Ihre Implementierung des NSDraggingDestination
-Protokolls).
Zum Beispiel:
%Vor%Tags und Links macos cocoa drag-and-drop nsdraggingitem