swiftui - onTapGesture 会劫持事件吗?
问题描述
我正在尝试使用onTapGesture
,但这样做几乎不可能访问该列表 - 如果我删除onTapGesture
它可以完美地工作
这是我正在使用的:
struct NavPickerView: View {
@State var selected: Int = -1
@State var cities: [String] = ["New York", "San Diego", "Houston", "Boston"]
@State var selectionStarted: Bool = false
var body: some View {
VStack {
Text("\(selectionStarted ? "SELECTING" : "WAITING")")
NavigationView {
Form {
Section {
Picker(selection: $selected, label: Text("Search for...")) {
Text("Select City").tag(-1)
ForEach(0..<cities.count) {
Text(verbatim: self.cities[$0]).tag($0)
}
}
}
}
.onTapGesture { self.selectionStarted = true }
.navigationBarTitle(Text("Cities"))
}
}
}
}
当一个项目被选中而不使列表几乎无法访问时,有什么方法可以运行代码?
解决方案
在您的情况下,这似乎.onAppear
更合适:
Form {
Section {
Picker(selection: $selected, label: Text("Search for...")) {
Text("Select City").tag(-1)
ForEach(0..<cities.count) {
Text(verbatim: self.cities[$0]).tag($0)
}
.onAppear { self.selectionStarted = true }
}
}
}
推荐阅读
- python - 在pygame中出现游戏结束屏幕后重新启动蛇游戏
- c++ - 需要一个标识符
- python - 使用 pip 安装 wheel 文件后,找不到模块错误
- java - 在所有嵌套实体中选择几个:SPRING JPA
- c - 有没有办法为多个参数编号和类型定义一个“通用”结构
- django - 当我在 admin 中单击自定义用户模型中的用户时,出现错误(django)
- javascript - 未捕获的类型错误:无法读取 null 的属性“2”
- azure-application-insights - Application Insights - 如何设置自定义操作 ID
- python-3.x - 异常值:(1054,“'字段列表'中的未知列'social_auth_usersocialauth.created'”)
- c++ - 字符串与十六进制值的用户定义文字