[英]Keyboard appearance causes preceding tab to fire onAppear in TabView using SwiftUI
请参阅下面的代码作为要遵循的谈话要点的参考:
struct ContentView: View {
var body: some View {
TabView {
Tab1()
.tabItem {
Label("Tab 1", systemImage: "square.and.arrow.up")
}
Tab2()
.tabItem {
Label("Tab 2", systemImage: "scribble")
}
Tab3()
.tabItem {
Label("Tab 3", systemImage: "pencil.tip")
}
}
}
}
struct Tab1:View {
var body:some View {
Text("Tab 1")
.onAppear {
print("Tab 1 Shown")
}
}
}
struct Tab2:View {
var body:some View {
Text("Tab 2")
.onAppear {
print("Tab 2 Shown")
}
}
}
struct Tab3:View {
@State var text:String = ""
var body:some View {
TextField("Type something", text: $text)
.onAppear {
print("Tab 3 Shown")
}
}
}
当这个应用程序启动时,它会出现在 Tab 1 上。它会打印“Tab 1 Shown”,这是完全正常的和预期的。 当我按 Tab 3 时,它将打印预期的“Tab 3 Shown”。 我遇到的问题是,当我按下TextField
时,它会打印出“Tab 2 Shown”,这是不正确的。 我仍在选项卡 3 上。此结果出乎意料,似乎显示键盘会导致此问题。 这会导致我正在处理的应用程序出现其他问题——这个应用程序只是演示了这个问题。 我有以下问题:
我只是把这个留给下一个遇到类似问题的人。 简而言之,这发生在 iOS14 上。 在 iOS15 上,Apple 似乎已经解决了这个问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.