SwiftUI:为什么 proxy.safeAreaInsets.bottom 的高度等于 keyboardHeight?

SwiftUI: Why is the height of proxy.safeAreaInsets.bottom equal to keyboardHeight?

所以iPhone 11 Pro Max上的safeAreaInset.bottom是34.0,但是当键盘打开时,它把safeAreaInset.bottom改为键盘的高度(346.0点) .有什么方法可以在键盘打开时访问 safeAreaInset.bottom 值 (34.0)?

作为参考,我的内容视图中有一个几何图形 reader:

var body: some View {
    GeometryReader { proxy in
        //I pass in proxy into views in here and then access the safe area with proxy.safeAreaInsets.bottom
    }
}

我还需要它能够适应所有设备,而且为不同的设备制作一堆 if 语句似乎是一个非常糟糕的解决方案。有人有建议吗?

这是可能的解决方案。用 Xcode 12 / iOS 14

测试

var body: some View
{
    GeometryReader
    { gp in
        VStack
        {
            Text("Bottom: \(gp.safeAreaInsets.bottom)")
            Spacer()
            TextField("Value", text: $selection)
            Spacer()
        }
    }.ignoresSafeArea(.keyboard, edges: .bottom)     // << here !!
}