SwiftUI iOS14 - 禁用键盘回避

SwiftUI iOS14 - Disable keyboard avoidance

有没有办法在 iOS14 上禁用本机键盘回避?

iOS13中没有键盘回避,所以我想自己实现,但是当我在iOS14上做原生的时候仍然有效,所以我的实现和原生的都一样运行 同时,我不想要。

我的部署目标是 iOS13,所以我需要针对 iOS13 iOS14.

的解决方案

如果你想修改 iOS 14 代码,你可以使用 if #available(iOS 14.0, *),以便它在 iOS 13 上编译。

这是 的改编版本,适用于 iOS 13 和 iOS 14:

struct ContentView: View {
    @State var text: String = ""

    var body: some View {
        if #available(iOS 14.0, *) {
            VStack {
                content
            }
            .ignoresSafeArea(.keyboard, edges: .bottom)
        } else {
            VStack {
                content
            }
        }
    }

    @ViewBuilder
    var content: some View {
        Spacer()
        TextField("asd", text: self.$text)
            .textFieldStyle(RoundedBorderTextFieldStyle())
        Spacer()
    }
}