Определение наличия перетаскивания мыши в AppKit
У меня есть вид с областью отслеживания, которая меняет курсор мыши в зависимости от того, где находится мышь в виде. Этот же вид также является местом перетаскивания для определенного типа файла.
Когда я перетаскиваю файл (например, из Finder) в это представление, рядом с курсором появляется зеленый значок плюс, но затем исчезает, когда область отслеживания обновляет курсор. Можно ли мне сказать, что мышь перетаскивают, и не обновлять курсор, если он есть?
1 ответ
Не совсем так, как я надеялся, но одно решение, которое я нашел, состояло в том, чтобы установить флаг во время 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.
}