SwiftUI Распознавание мыши - PullRequest
0 голосов
/ 19 марта 2020

Для UIKit на Ma c Catalyst (и вскоре на iPadOS с поддержкой трекпада в iOS 13.4) мы можем использовать UIHoverGestureRecognizer для прослушивания события наведения мыши и соответствующей настройки вида. В AppKit на macOS есть NSTrackingArea для отслеживания курсора мыши.

Кажется, я не могу найти способ распознать жест наведения в SwiftUI. На странице Жесты документации SwiftUI есть только поддержка касания, длительного нажатия, перетаскивания, увеличения (увеличения) и поворота. Нет указаний на наведение мыши.

У кого-нибудь есть способ сделать это?

Ответ должен запускаться изначально как в приложении iOS (UIKit с UIHostingController), так и в приложении MacOS (AppKit с NSHostingController)

1 Ответ

0 голосов
/ 25 марта 2020

Apple только что выпустила ответ на этот вопрос вместе с iOS 13.4!

Просто используйте:

SomeView()
    .onHover { hover in
        print("Mouse hover: \(hover)")
        // Do something else
    }

Замените SomeView на ваш взгляд, и все!

Примечание: Поскольку этот API появился в iOS 13.4, вы не можете использовать его в приложениях с целевым значением 13.0 (или вы умело используете оператор if)

ОБНОВЛЕНИЕ: Похоже, это всегда работало на macOS (поэтому не нужно специально нацеливаться на 10.15.4, но я пропустил это :()

...