Определение наличия перетаскивания мыши в 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.
}
Другие вопросы по тегам