Я пишу простий додаток "Міни", щоб допомогти мені познайомитися зі 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
викликається лише тоді, коли я утримую клавішу Control. Це має сенс, тому що так пише код ... але я не бачу жодного 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(.......))