J'utilise Textfield à mon avis et quand il devient le premier répondeur, il augmente la vue comme indiqué dans le gif ci-dessous.
Y a-t-il un moyen de vous débarrasser de ce comportement?
Voici mon code
NavigationView(content: {
ZStack{
MyTabView(selectedIndex: self.$index)
.view(item: self.item1) {
NewView(title: "Hello1").navigationBarTitle("")
.navigationBarHidden(true)
}
.view(item: self.item2) {
NewView(title: "Hello2").navigationBarTitle("")
.navigationBarHidden(true)
}
.view(item: self.item3) {
NewView(title: "Hello3").navigationBarTitle("")
.navigationBarHidden(true)
}
}.navigationBarHidden(true)
.navigationBarTitle("")
}).ignoresSafeArea(.keyboard, edges: .bottom)
// Nouvelle vue
struct NewView:View {
@State var text:String = ""
var title:String
var body: some View {
VStack {
Spacer()
Text("Hello")
TextField(title, text: self.$text)
.textFieldStyle(RoundedBorderTextFieldStyle())
}.padding()
.onAppear {
debugPrint("OnApper \(self.title)")
}
}
}
Vous devez appliquer le modificateur sur le ZStack
, [~ # ~] non [~ # ~] Le NavigationView
NavigationView(content: {
ZStack{
,,,
}.navigationBarHidden(true)
.navigationBarTitle("")
.ignoresSafeArea(.keyboard, edges: .bottom) // <- This line moved up
})
struct ContentView: View {
@State var text = ""
var body: some View {
VStack{
Spacer()
Text("Hello, World")
TextField("Tap to test keyboard ignoring", text: $text)
.textFieldStyle(RoundedBorderTextFieldStyle())
}
.padding()
.ignoresSafeArea(.keyboard, edges: .bottom)
}
}
Ce qui a finalement travaillé pour moi, combinant des réponses publiées ici et compte également cette question , est la suivante (Xcode 12.4, iOS 14.4):
GeometryReader { _ in
VStack {
Spacer()
TextField("Type something...", text: $value)
Spacer()
}.ignoresSafeArea(.keyboard, edges: .bottom)
}
Les deux espaceurs sont là pour centrer verticalement le champ de texte.
Utiliser uniquement la géométryreader ou le modificateur ignoresSafeArea
n'a pas fait l'affaire, mais après les avoir mis ensemble, comme indiqué ci-dessus, arrêtez-vous finalement la vue de l'apparence du clavier.