У меня есть форма SwiftUI с полем TextField. Мне бы хотелось, чтобы при появлении клавиатуры форма не закрывалась клавиатурой И чтобы поле было прокручиваться в поле зрения.
Form {
ForEach(0..<self.fields.count) { index in
CreateField(field: self.fields[index]) // this could be any of several input types
}
}
.modifier(KeyboardHandler())
, где KeyboardHandler()
- это любое из нескольких решений, найденных в Stackoverflow, для изменения нижнего отступа формы при появлении / исчезновении клавиатуры.
При использовании формы (которая отображает вещи очень хорошо) можно ожидать, что по крайней мере один элемент в форме потребует использования клавиатуры. Я имею в виду, что это одна из причин использовать форму: собирать информацию от пользователя. Поэтому меня удивляет, что обработка клавиатуры каким-то образом не встроена в форму. Или, скорее, таким образом, который работает без нас, чтобы сделать это. В Stackoverflow есть несколько клавиатурных решений - это колесо, которое изобреталось чаще, чем само колесо.
Я рассмотрел несколько представленных решений, и большинство из них изменит нижний отступ формы, чтобы он не перекрывался клавиатурой. Ни одно из найденных решений не решает проблему прокрутки поля в поле зрения.
Возможно ли это с SwiftUI? Должен ли я написать свою собственную форму (я бы не хотел)?