#swiftui
#свифтуи
Вопрос:
Как я могу сосредоточиться на определенном текстовом поле при появлении представления? У меня есть базовая форма, в которой я хочу, чтобы поле заголовка было сфокусировано при отображении модального. У меня есть следующий код, который достигает этого, но должен быть более чистый/лучший способ. Могу ли я установить начальное значение a @FocusState var
в поле или логическое значение, которое затем выбирает текстовое поле при появлении представления?
var body: some View { NavigationView { VStack { Form { TextField("Title", text: $viewModel.title) .focused($titleIsFocused) } } .navigationBarTitle("New List") .onAppear { DispatchQueue.main.asyncAfter(deadline: .now() 0.6) { titleIsFocused = true } } } } }
Комментарии:
1. Не то, чтобы я видел. Было много твитов об этой проблеме, и ваш код-это ответ, который они придумали.
2. Ладно, я так и думал. Я просто хотел убедиться, что я не сумасшедший….это похоже на полную неудачу со стороны Apple, но ладно.
3. Я вчера читал твит, где кто-то удивлялся, как много вещей в SwiftUI было решено
DispatchQueue.main.asyncAfter(deadline:)
. Я надеюсь, что кто-нибудь найдет ответ…4. Да, ну
onAppear
на самом деле называется, когдаView
он добавляется в график памяти, а не когда он на самом деле появляется на экране, что, вероятно, является причиной путаницы для многих из нас.5. Не столько замешательство, сколько раздражение. Попробуйте определить, когда видна определенная строка списка…