显示键盘时滚动的SwiftUI表单

时间:2020-02-14 14:46:50

标签: forms uiscrollview keyboard swiftui

我有一个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上用于在键盘出现/消失时更改表单底部填充的几种解决方案中的任何一种。

使用表格(可以很好地显示内容)时,可以预期表格中至少有一项需要使用键盘。我的意思是,这是使用表单的原因之一:从用户那里收集信息。因此,令我惊讶的是,键盘处理未以某种方式内置到Form中。或者更确切地说,以一种无需我们执行此操作的方式进行操作。 Stackoverflow上有许多键盘解决方案-与轮子本身相比,这种轮子已经被重新发明了多次。

我已经看过所介绍的几种解决方案,并且大多数将更改Form的底部填充,以使它不会被键盘遮挡。我发现的解决方案都无法解决将字段滚动到视图中的问题。

SwiftUI可以吗?我是否应该编写自己的自定义表单(我宁愿不这样做)?

0 个答案:

没有答案