2016-07-17 80 views
0

我有一个视图,其中有一个跟踪区域,根据鼠标在视图中的位置改变鼠标光标。同样的观点也是某种文件类型的拖拽目标。检测鼠标是否被拖入AppKit

当我将一个文件(例如从Finder)拖动到该视图中时,绿色加号图标会在光标旁边短暂显示,但在跟踪区更新光标后会消失。有没有什么方法可以告诉我鼠标正在拖动,而不是更新光标?

回答

0

不像我希望的那么直接,但我想出的一个解决方案是在NSDraggingDestination方法中设置一个标志,然后在设置光标的代码中检查该标志。这似乎工作得很好。

- (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. 
}