在SwiftUI中检测触摸外部按钮
我有一个重置按钮,要求首先确认。如果用户触摸组件外部,我想将在SwiftUI中检测触摸外部按钮,swiftui,Swiftui,我有一个重置按钮,要求首先确认。如果用户触摸组件外部,我想将isSure设置为false 我可以从按钮组件执行此操作吗 这是我的按钮: struct ResetButton: View { var onConfirmPress: () -> Void; @State private var isSure: Bool = false; var body: some View { Button(action: { if (sel
isSure
设置为false
我可以从按钮组件执行此操作吗
这是我的按钮:
struct ResetButton: View {
var onConfirmPress: () -> Void;
@State private var isSure: Bool = false;
var body: some View {
Button(action: {
if (self.isSure) {
self.onConfirmPress();
self.isSure.toggle();
} else {
self.isSure.toggle();
}
}) {
Text(self.isSure ? "Are you sure?" : "Reset")
}
}
}
以下是一种方法:
struct ContentView: View {
var onConfirmPress: () -> Void
@State private var isSure: Bool = false
var body: some View {
GeometryReader { geometry in
ZStack {
// a transparent rectangle under everything
Rectangle()
.frame(width: geometry.size.width, height: geometry.size.height)
.opacity(0.001) // <--- important
.layoutPriority(-1)
.onTapGesture {
self.isSure = false
print("---> onTapGesture self.isSure : \(self.isSure)")
}
Button(action: {
if (self.isSure) {
self.onConfirmPress()
}
self.isSure.toggle()
}) {
Text(self.isSure ? "Are you sure?" : "Reset").padding(10).border(Color.black)
}
}
}
}
}
struct ContentView:View{
变量onConfirmPress:()->Void
@国家私有风险值问题:Bool=false
var body:一些观点{
GeometryReader{中的几何体
ZStack{
//所有东西下面都是一个透明的长方形
矩形()
.框架(宽度:几何体.尺寸.宽度,高度:几何体.尺寸.高度)
.opacity(0.001)/这里有一种方法:
struct ContentView: View {
var onConfirmPress: () -> Void
@State private var isSure: Bool = false
var body: some View {
GeometryReader { geometry in
ZStack {
// a transparent rectangle under everything
Rectangle()
.frame(width: geometry.size.width, height: geometry.size.height)
.opacity(0.001) // <--- important
.layoutPriority(-1)
.onTapGesture {
self.isSure = false
print("---> onTapGesture self.isSure : \(self.isSure)")
}
Button(action: {
if (self.isSure) {
self.onConfirmPress()
}
self.isSure.toggle()
}) {
Text(self.isSure ? "Are you sure?" : "Reset").padding(10).border(Color.black)
}
}
}
}
}
struct ContentView:View{
变量onConfirmPress:()->Void
@国家私有风险值问题:Bool=false
var body:一些观点{
GeometryReader{中的几何体
ZStack{
//所有东西下面都是一个透明的长方形
矩形()
.框架(宽度:几何体.尺寸.宽度,高度:几何体.尺寸.高度)
.不透明度(0.001)//