Estou escrevendo um aplicativo simples do Mines para me ajudar a conhecer o SwiftUI. Como tal, quero que o clique primário (normalmente LMB) "cave" (revele se há um mina lá) e o clique secundário (geralmente RMB) para colocar um sinalizador.
Eu tenho a escavação trabalhando! Mas não consigo descobrir como colocar uma bandeira, porque não consigo descobrir como detectar um clique secundário.
Aqui está o que estou tentando :
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.gesture(TapGesture().onEnded(self.handleUserDidTap(square)))
Como sugeri anteriormente, a função retornada por handleUserDidTap
é chamada corretamente ao clicar, mas a retornada por handleUserDidAltTap
é chamada somente quando eu pressiono a tecla Control. Isso faz sentido, porque é isso que o código diz ... mas não vejo nenhuma API que possa fazer com que ele registre cliques secundários, então não sei mais o que fazer.
Eu também tentei isso, mas o comportamento parecia idêntico:
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.onTapGesture(self.handleUserDidTap(square))
.onTapGesture()
Confira.
.gesture(TapGesture().onEnded(.......))