swift - 如何检测 NSWindow 是否被拖动?
问题描述
我正在使用 SwiftUI。我有一个名为 SideBar 的视图,它由 VStack 和其中的按钮组成。
我尝试在 VStack 上附加一些手势,例如DragGesture()
和TapGesture()
onended
,希望它能检测到用户何时拖动视图,但这并不总是有效,我也认为这是超级黑客。
有人能帮忙吗?非常感谢。
代码:
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,它将用于position
确定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)
})
}
}
推荐阅读
- css - 如何使网格行和列动态化?
- .net - .Net 核心内存使用情况
- asp.net-mvc - 在 Razor 页面中绑定多个列表项
- angular - PrimeNG 表 - 如何清除代码中的文本过滤器和 p 表
- powershell - Powershell 在远程电脑上执行 some.exe 并输入多行文本
- docker - Traefik 配置未使用 AT&T 连接到手机
- python - 使用 PythonScript 将 Maya 显示层设置为关闭
- numpy - 如何在纯 Python 中创建直方图?
- sql - 如何将数组 json 列中的值提取到 Postgresql 中的多行中?
- reactjs - React Enzyme 测试:找不到 react-redux 上下文值;请确保组件被包裹在一个