如何防止键盘在 SwiftUI 中向上推视图? [复制]
Posted
技术标签:
【中文标题】如何防止键盘在 SwiftUI 中向上推视图? [复制]【英文标题】:How to prevent keyboard from pushing up the view in SwiftUI? [duplicate] 【发布时间】:2021-04-15 09:16:05 【问题描述】:我是 SwiftUI 编程的新手,我已经创建了一个视图,但是一旦用户点击文本字段,键盘就会出现并且整个视图都会向上推,我该如何解决这个问题?
【问题讨论】:
不,从某种意义上说,我创建了一个注册页面,一旦我点击一个文本字段,它就会将视图向上推 我刚刚在网上看到,解决这个问题的唯一方法是包含滚动视图,因为 ignoresSafeArea 不适用于 VStack 你能帮忙@Andrew @jnpdx 你能帮我吗 @jaz01 正如已经指出的那样,这个问题之前已经在 SO 上得到了回答。如果现有解决方案不适合您,您需要展示您尝试过的代码并解释您的情况为何不同以及现有解决方案如何无法正常工作。 【参考方案1】:相信你可以使用.ignoresSafeArea(.keyboard)
我在 XCode 12.4 和模拟器 ios 14.4 中测试了这段代码
struct ContentView: View
var body: some View
VStack
Spacer()
Group
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Text("Content")
HStack
Spacer()
TextField("INPUT", text: .constant("HERE IS INPUT"))
Spacer()
Group
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Text("Content")
Spacer()
.ignoresSafeArea(.keyboard)
【讨论】:
但 GeometryReader 真的需要@MaksymilianTomczyk 好点,GeometryReader 是另一个实验遗留下来的。编辑答案以删除 GeometryReader。 但我厌倦了,它对我不起作用。 @Maksymilian Tomczyk 我尝试在没有 GeometryReader 的空项目上运行它并且它有效。您的内容是否包装在其他容器中? 我会用我的代码更新问题给你看看。以上是关于如何防止键盘在 SwiftUI 中向上推视图? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
Android:如何防止键盘在我的布局中向上推某个视图? [复制]
如何使用 CSS 或 JS 防止 iOS 键盘将视图推离屏幕