Tôi đang viết một ứng dụng Mines đơn giản để giúp tôi làm quen với SwiftUI. Như vậy, tôi muốn nhấp chuột chính (thường là LMB) để "đào" (tiết lộ xem có mỏ nào ở đó không) và nhấp chuột phụ (thường là RMB) để đặt cờ.
Tôi có công việc đào! Nhưng tôi không thể tìm ra cách đặt cờ, vì tôi không thể tìm ra cách phát hiện nhấp chuột phụ.
Đây là những gì tôi đang cố gắng :
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.gesture(TapGesture().onEnded(self.handleUserDidTap(square)))
Như tôi đã ngụ ý trước đó, hàm được trả về handleUserDidTap
được gọi đúng khi nhấp, nhưng hàm được trả về handleUserDidAltTap
chỉ được gọi khi tôi giữ phím Control. Điều đó có ý nghĩa bởi vì đó là những gì mã nói ... nhưng tôi không thấy bất kỳ API nào có thể khiến nó đăng ký các nhấp chuột thứ cấp, vì vậy tôi không biết phải làm gì khác.
Tôi cũng đã thử điều này, nhưng hành vi có vẻ giống hệt nhau:
BoardSquareView(
style: self.style(for: square),
model: square
)
.gesture(TapGesture().modifiers(.control).onEnded(self.handleUserDidAltTap(square)))
.onTapGesture(self.handleUserDidTap(square))
.onTapGesture()
kiểm tra nó
.gesture(TapGesture().onEnded(.......))