Estoy escribiendo una aplicación simple de Mines para ayudarme a conocer SwiftUI. Como tal, quiero que el clic primario (generalmente LMB) se "cave" (revele si hay una mina allí) y el clic secundario (generalmente RMB) para colocar una bandera.
Tengo la excavación trabajando! Pero no puedo entender cómo colocar una bandera, porque no puedo descubrir cómo detectar un clic secundario.
Esto es lo que estoy intentando :
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.gesture(TapGesture().onEnded(self.handleUserDidTap(square)))
Como implique anteriormente, la función devuelta por handleUserDidTap
se llama correctamente al hacer clic, pero la que devuelve handleUserDidAltTap
solo se llama cuando mantengo presionada la tecla Control. Eso tiene sentido porque eso es lo que dice el código ... pero no veo ninguna API que pueda hacer que registre clics secundarios, por lo que no sé qué más hacer.
También probé esto, pero el comportamiento parecía idéntico:
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.onTapGesture(self.handleUserDidTap(square))
.onTapGesture()
Echale un vistazo.
.gesture(TapGesture().onEnded(.......))