Ich schreibe eine einfache Mines-App , um SwiftUI kennenzulernen. Als solches möchte ich, dass der primäre Klick (normalerweise LMB) "gräbt" (zeigt an, ob sich dort eine Mine befindet) und der sekundäre Klick (normalerweise RMB), um eine Flagge zu platzieren.
Ich habe das Graben arbeiten! Aber ich kann nicht herausfinden, wie man eine Flagge platziert, weil ich nicht herausfinden kann, wie man einen sekundären Klick erkennt.
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.gesture(TapGesture().onEnded(self.handleUserDidTap(square)))
Wie ich bereits angedeutet habe, wird die von zurückgegebene Funktion handleUserDidTap
beim Klicken ordnungsgemäß aufgerufen , die von zurückgegebene Funktion handleUserDidAltTap
wird jedoch nur aufgerufen, wenn ich die Steuertaste gedrückt halte. Das ist sinnvoll, weil der Code dies sagt ... aber ich sehe keine API, die dazu führen könnte, dass sekundäre Klicks registriert werden, sodass ich nicht weiß, was ich sonst tun soll.
Ich habe es auch versucht, aber das Verhalten schien identisch zu sein:
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.onTapGesture(self.handleUserDidTap(square))
.onTapGesture()
Hör zu.
.gesture(TapGesture().onEnded(.......))