ฉันมีปุ่มใน SwiftUI และฉันต้องการที่จะสามารถดำเนินการที่แตกต่างกันสำหรับ "ปุ่มแตะ" (คลิก / แตะปกติ) และ "กดแบบยาว"
เป็นไปได้ใน SwiftUI หรือไม่
นี่คือรหัสง่ายๆสำหรับปุ่มที่ฉันมีตอนนี้ (จัดการเฉพาะกรณีแตะ / สัมผัส "ปกติ")
Button(action: {self.BLEinfo.startScan() }) {
Text("Scan")
} .disabled(self.BLEinfo.isScanning)
ฉันได้ลองเพิ่ม "ท่าทางกดยาว" แล้ว แต่ก็ยัง "กดปุ่ม" ปกติ / สั้น "เท่านั้น นี่คือรหัสที่ฉันพยายาม:
Button(action: {self.BLEinfo.startScan() }) {
Text("Scan")
.fontWeight(.regular)
.font(.body)
.gesture(
LongPressGesture(minimumDuration: 2)
.onEnded { _ in
print("Pressed!")
}
)
}
ขอบคุณ!
เจอราร์ด
onLongPressGesture()
ก่อนonTapGesture()
จะไม่สนใจอันหลัง