Ниже приведен пример кода, состоящий из простого представления, содержащего текстовое поле и кнопку нижнего колонтитула. Я установил TextField так, чтобы фокус получался через 0,75 секунды при появлении представления.
К сожалению, приведенный ниже код приводит к ошибке анимации, из-за которой фон за кнопкой нижнего колонтитула ненадолго мигает, когда клавиатура завершает анимацию. на экран.
Код: Выделить всё
struct NameTextFieldView: View {
@Environment(\.dismiss) var dismiss
@FocusState private var isFocused: Bool
@State private var name: String = ""
var body: some View {
NavigationStack {
Form {
TextField("Name", text: $name)
.focused($isFocused)
.onAppear {
DispatchQueue.main.asyncAfter(deadline: .now() + 0.75) {
isFocused = true
}
}
}
.safeAreaInset(edge: .bottom) {
Button(action: {
dismiss()
}, label: {
Text("Add")
.foregroundStyle(Color.white)
})
.frame(width: 200, height: 44)
.background(Color.blue)
.clipShape(RoundedRectangle(cornerSize: CGSize(width: 20, height: 10)))
.padding()
}
.navigationTitle("Add Name")
.navigationBarTitleDisplayMode(.inline)
}
}
}

Подробнее здесь: https://stackoverflow.com/questions/786 ... d-in-swift