2016-07-17 24 views
0

Ich habe eine Ansicht mit einem Tracking-Bereich, der den Mauszeiger basierend auf der Position der Maus in der Ansicht ändert. Dieselbe Ansicht ist auch ein Ziehziel für einen bestimmten Dateityp.Ermitteln, ob die Maus gezogen wird AppKit

Wenn ich eine Datei (z. B. aus dem Finder) in diese Ansicht ziehen, wird das grüne Plus-Symbol kurz neben dem Cursor angezeigt, verschwindet jedoch, sobald der Tracking-Bereich den Cursor aktualisiert. Gibt es eine Möglichkeit für mich zu sagen, dass die Maus gezogen wird und nicht den Cursor aktualisieren, wenn es ist?

Antwort

0

Nicht ganz so direkt, wie ich es mir erhofft hatte, aber eine Lösung, die ich mir ausgedacht hatte, war, eine Flagge während der NSDraggingDestination Methoden zu setzen und dann dieses Flag im Code zu überprüfen, der den Cursor setzt. Dies scheint gut genug zu funktionieren.

- (NSDragOperation)draggingEntered:(id<NSDraggingInfo>)sender { 
    self.dragIsBeingPerformed = YES; 
    // Rest of method. 
} 

- (void)draggingExited:(id<NSDraggingInfo>)sender { 
    self.dragIsBeingPerformed = NO; 
    // Rest of method. 
} 

- (void)concludeDragOperation:(id<NSDraggingInfo>)sender { 
    self.dragIsBeingPerformed = NO; 
    // Rest of method. 
}