ฉันกำลังเขียนแอพ Mines ง่ายๆเพื่อช่วยให้ฉันรู้จัก SwiftUI ด้วยเหตุนี้ฉันต้องการคลิกหลัก (ปกติคือ LMB) เพื่อ "ขุด" (เปิดเผยว่ามีของฉันอยู่ที่นั่นหรือไม่) และคลิกรอง (โดยทั่วไปคือ RMB) เพื่อวางธง
ฉันขุดได้แล้ว! แต่ฉันไม่สามารถหาวิธีวางธงได้เพราะฉันไม่สามารถหาวิธีตรวจจับการคลิกรองได้
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.gesture(TapGesture().onEnded(self.handleUserDidTap(square)))
ดังที่ได้กล่าวไว้ก่อนหน้านี้ฟังก์ชั่นที่ส่งกลับโดยhandleUserDidTap
เรียกว่าถูกต้องเมื่อคลิก แต่ฟังก์ชั่นที่ส่งกลับโดยจะถูกhandleUserDidAltTap
เรียกเฉพาะเมื่อฉันกดปุ่มควบคุมค้างไว้ นั่นเป็นเหตุผลเพราะมันคือรหัสที่บอกว่า ... แต่ฉันไม่เห็น API ใดที่ทำให้ลงทะเบียนการคลิกรองดังนั้นฉันไม่รู้ว่าจะต้องทำอะไรอีก
ฉันลองสิ่งนี้ด้วย แต่พฤติกรรมก็เหมือนกัน:
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.onTapGesture(self.handleUserDidTap(square))
.onTapGesture()
ตรวจสอบมัน
.gesture(TapGesture().onEnded(.......))