【发布时间】:2020-04-04 09:49:09
【问题描述】:
我写信 a simple Mines app 是为了帮助我了解 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()看看吧。 -
哎呀,你是对的@GilBirman!固定的;对此感到抱歉
-
@Raymond 我先试过了。除非我遗漏了一些重要的东西,否则它的行为似乎与
.gesture(TapGesture().onEnded(.......))
标签: swift event-handling mouseevent swiftui right-click