Как я могу обнаружить щелчок правой кнопкой мыши в SwiftUI? - PullRequest
2 голосов
/ 11 декабря 2019

Я пишу простое приложение Mines , чтобы помочь мне познакомиться с SwiftUI. Поэтому я хочу, чтобы основной щелчок (обычно ЛКМ) «копал» (показывает, есть ли там мина), и вторичный щелчок (обычно юань), чтобы установить флаг.

У меня работает копание! Но я не могу понять, как разместить флаг, потому что я не могу понять, как обнаружить вторичный щелчок.

Вот что я пытаюсь :

BoardSquareView(
    style: self.style(for: square),
    model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.gesture(TapGesture().onEnded(self.handleUserDidTap(square)))

Как я и предполагал ранее, функция, возвращаемая handleUserDidTap, вызывается правильно при нажатии, а функция, возвращаемая handleUserDidAltTap, вызывается только тогда, когда я удерживаю клавишу Control. Это имеет смысл, потому что это то, что написано в коде ... но я не вижу API, который мог бы заставить его регистрировать вторичные клики, поэтому я не знаю, что еще делать.

Я также попробовал это,но поведение казалось идентичным:

BoardSquareView(
    style: self.style(for: square),
    model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.onTapGesture(self.handleUserDidTap(square))
...