Я могу автоматически сфокусируйте это TextField, когда лист появляется, используя @FocusState и onAppear, однако я обнаружил, что лист должен полностью появиться, прежде чем TextField будет сфокусирован и включен появится экранная клавиатура.
Это происходит довольно медленно, и я заметил, что во многих других приложениях они могут одновременно запускать экранную клавиатуру и лист.
Вот мой код:
Код: Выделить всё
struct ContentView: View {
@State var showSearch = false
var body: some View {
Button {
showSearch = true
} label: {
Text("Search")
}
.sheet(isPresented: $showSearch) {
SearchView()
}
}
}
struct SearchView: View {
@State var searchTerm = ""
@FocusState private var searchFocus: Bool
var body: some View {
TextField("Search", text: $searchTerm)
.focused($searchFocus)
.onAppear() {
searchFocus = true
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/752 ... -appearing
Мобильная версия