J'écris une application simple Mines me aider à mieux connaître SwiftUI. En tant que tel, je veux que le clic principal (généralement LMB) "creuse" (révèle s'il y a une mine là-bas), et un clic secondaire (généralement RMB) pour placer un drapeau.
J'ai le travail de creusage! Mais je ne peux pas comprendre comment placer un indicateur, car je ne peux pas comprendre comment détecter un clic secondaire.
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.gesture(TapGesture().onEnded(self.handleUserDidTap(square)))
Comme je l'ai laissé entendre précédemment, la fonction renvoyée par handleUserDidTap
est appelée correctement lors d'un clic, mais celle renvoyée par handleUserDidAltTap
n'est appelée que lorsque je maintiens la touche Ctrl enfoncée. C'est logique parce que c'est ce que dit le code ... mais je ne vois aucune API qui pourrait lui permettre d'enregistrer des clics secondaires, donc je ne sais pas quoi faire d'autre.
J'ai également essayé cela, mais le comportement semblait identique:
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.onTapGesture(self.handleUserDidTap(square))
.onTapGesture()
Vérifiez-le.
.gesture(TapGesture().onEnded(.......))