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的解决方案。
我的 iOS 应用程序中有一个 TextField,它的位置使得我不希望它在键盘出现时移动。但是,当键盘出现时,视图会自动调整大小。有办法防止这种情况吗?
import SwiftUI
struct test: View {
@State var text: String = ""
var body: some View {
TextField("Type", text: self.$text)
}
}
Run Code Online (Sandbox Code Playgroud) 从 iOS14 开始,我发现TextField一旦键盘出现,我所有的s 都会自动向上移动。
我还没有找到阻止这种情况的方法,我错过了什么吗?
这是一个简单的演示+代码:
演示:
代码:
import SwiftUI
struct ContentView: View {
@State private var textInput: String = ""
var body: some View {
TextField("Test", text: $textInput)
}
}
Run Code Online (Sandbox Code Playgroud)