SwiftUI – Как сфокусировать TextField на листе по мере его появления?IOS

Программируем под IOS
Ответить
Anonymous
 SwiftUI – Как сфокусировать TextField на листе по мере его появления?

Сообщение Anonymous »

У меня есть текстовое поле поиска в представлении, которое отображается на листе поверх ContentView.
Я могу автоматически сфокусируйте это 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»