Как заставить клавиатуру не поднимать элементы управления в самом низу экрана, но все же поднимать вид, чтобы настроить IOS

Программируем под IOS
Ответить
Anonymous
 Как заставить клавиатуру не поднимать элементы управления в самом низу экрана, но все же поднимать вид, чтобы настроить

Сообщение Anonymous »

В SwiftUI на iOS у меня есть следующий .sheet, который отображает DisclosureGroup, который содержит DisclosureGroup внутри него и имеет TextField. В самом низу .sheet находятся две кнопки «Отмена» и «Ввод», позволяющие пользователю отправить данные/отклонить их:

Код: Выделить всё

import SwiftUI

struct TestView: View
{
@State private var sheetIsPresented: Bool = false
@State private var outerDisclosureIsExpanded: Bool = false
@State private var innerDisclosureIsExpanded: Bool = false
@State private var textFieldUserInput: String = ""

var body: some View
{
Button("OK")
{
self.sheetIsPresented = true
}
.sheet(isPresented: self.$sheetIsPresented)
{
VStack
{
Form
{
Section(header: Text("Section"))
{
DisclosureGroup("Outer Disclosure Group", isExpanded: self.$outerDisclosureIsExpanded)
{
ForEach(1...20, id: \.self)
{
index in Text("Value \(index)")
}
DisclosureGroup("Inner Disclosure Group", isExpanded: self.$innerDisclosureIsExpanded)
{
TextField("Enter name", text: self.$textFieldUserInput)

}
}
}
}
}

HStack
{
Button("Cancel")
{
}
.buttonStyle(.bordered).padding()

Spacer()

Button("Enter")
{
}
.buttonStyle(.borderedProminent)
.padding()
}
}
}
}
Когда я активирую TextField, содержащийся во внутренней группе DisclosureGroup, клавиатура нажимает кнопки «Отмена» и «Ввод» в самом низу представления. , а также настроить представление так, чтобы TextField было видно по мере ввода пользователем:
Изображение

Я хотел бы сделать так, чтобы кнопки «Отмена» и «Ввод» не нажимались вверх , что клавиатура проходит над ними, поэтому они не видны, но при этом сдвигает View вверх, чтобы TextField был виден пользователю во время ввода. .ignoresSafeArea(.keyboard, Edges: .bottom) по какой-то причине не работает с этим кодом, но даже когда я пробовал его в других местах моего кода, он помещает клавиатуру поверх TextField , а также кнопки «Отмена» и «Ввод». Есть ли другой способ выполнить то, о чем я спросил?

Подробнее здесь: https://stackoverflow.com/questions/793 ... f-view-but
Ответить

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

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

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

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

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