iOS13 发现 TextField 没有任何类型的键盘避免处理。因此,我们创建了运行良好的键盘避免机制。我们升级到 iOS14,这导致 TextFields 内置了键盘避免功能。但是,键盘避免功能似乎没有按预期工作。
问题 1 我们遇到的第一个问题是键盘避免在屏幕中心和周围的文本字段中无法正常工作。鉴于此代码:
struct ContentView: View {
@State var text:String = ""
var body: some View {
TextField("Testing", text: $text)
}
}
Run Code Online (Sandbox Code Playgroud)
在 iPhone 8 Plus 上,文本字段向上移动。我们认为这不应该发生,因为 TextField 不会被键盘隐藏,因此它应该保留在同一位置。
问题 1: 这是一个错误,应该向 Apple 报告吗?我们认为这是一个错误/问题。
我们发现使用以下方法:
struct ContentView: View {
@State var text:String = ""
var body: some View {
VStack {
Spacer()
TextField("Testing", text: $text)
}
}
}
Run Code Online (Sandbox Code Playgroud)
TextField 将移动到键盘正上方。这是预期的行为。我们还发现使用以下代码:
struct ContentView: View {
@State var text:String = ""
var body: some View …Run Code Online (Sandbox Code Playgroud) 有没有办法禁用 iOS14 上的本机键盘避免?
iOS13中没有键盘回避,所以我想实现我自己的,但是当我这样做时,iOS14上的本机键盘仍然处于活动状态,所以我的实现和本机键盘同时运行,这是我不希望的。
我的部署目标是iOS13,所以我需要一个同时适用于iOS13和iOS14的解决方案。
我是 SwiftUI 编程新手,我已经创建了一个视图,但是一旦用户点击文本字段,键盘就会出现,整个视图就会向上推,我该如何解决这个问题?