gpt4 book ai didi

swift - 如何检测NSWindow是否被拖动?

转载 作者:行者123 更新时间:2023-12-03 18:07:36 24 4
gpt4 key购买 nike

我正在使用 SwiftUI。我有一个名为 SideBar 的 View ,它由 VStack 和其中的按钮组成。

我尝试在 VStack 上附加一些手势,例如 DragGesture()TapGesture() onending,希望它能检测到何时用户拖动 View ,但这并不总是有效,我也认为这是 super 黑客行为。

有人可以帮忙吗?非常感谢。

代码:

VStack{blabla}

.frame(width: 40, height: 320)

.contentShape(Rectangle())

.gesture(
TapGesture().onEnded{_ in
print("end click")
}
)

.gesture(
DragGesture().onEnded{_ in
print("end drag")
}
)

最佳答案

只需 DragGesture().onChanged(_:) 就足够了。
您可以获得更新的阻力值,您可以决定如何使用。

在以下示例中,当拖动 VStack 时,捕获的值将重新渲染 UI,其中将使用该值确定 位置 VStack.

示例:

struct ContentView: View {
@State var position = CGPoint(x: 100, y: 100)

var body: some View {
VStack {
Text("Hello, World")
}
.background(Color.gray)
.position(position)
.gesture(DragGesture()
.onChanged { (value) in
self.position = CGPoint(x: value.location.x,
y: value.location.y)
})
}
}

关于swift - 如何检测NSWindow是否被拖动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61186633/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com