【问题标题】:SwiftUI iOS14 - Disable keyboard avoidanceSwiftUI iOS14 - 禁用键盘回避
【发布时间】:2021-04-18 09:57:14
【问题描述】:

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

iOS13 中没有键盘避免,所以我想实现自己的,但是当我在 iOS14 上执行本机时仍然处于活动状态,所以我的实现和本机同时运行,我不这样做'不想。

我的部署目标是iOS13,所以我需要一个iOS13iOS14的解决方案。

【问题讨论】:

  • 这能回答你的问题吗? iOS 14 SwiftUI Keyboard lifts view automatically
  • 不,我也需要它在 iOS 13 上工作
  • iOS 13 上没有 keyboard Avoidance。上述解决方案在 iOS 13 上不会执行任何操作,因此它应该适用于您的代码。
  • 遗憾的是,我已经编写了自己的键盘回避逻辑(适用于 iOS 13),但我需要关闭 iOS 14 原生键盘回避

标签: swiftui keyboard ios14


【解决方案1】:

如果您想调整 iOS 14 代码以便在 iOS 13 上编译,可以使用 if #available(iOS 14.0, *)

这是 this answer 的改编版本,可在 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()
    }
}

【讨论】:

  • 对我来说,使用 iOS 13.2,我必须使用 .all 而不是 .bottom。无论哪种方式,感谢您发布对此的答案。
猜你喜欢
  • 1970-01-01
  • 2021-01-06
  • 2023-02-06
  • 2021-05-31
  • 1970-01-01
  • 2022-12-15
  • 1970-01-01
  • 1970-01-01
  • 2021-03-09
相关资源
最近更新 更多