SwiftUIは - テキストフィールド上の対話アップシャドウ混乱を追加していますか?

brettfazio:

私はそうのような触媒のMacアプリのためのシンプルなSwiftUIビューを作成しています:

var body: some View {
    ZStack {
        Color(envColor.getColor())
        HStack {
            Spacer()
            VStack {
                HStack {
                    TextField("First", text: $envColor.stringR)
                    TextField("Second", text: $envColor.stringG)
                }
            }
            .frame(minWidth: 0, maxWidth: .infinity, minHeight: 100, maxHeight: 200)
            .background(Color.gray)

            Spacer()
            VStack {
                Text("Right Side")
            }
            .frame(minWidth: 0, maxWidth: .infinity, minHeight: 100, maxHeight: 200)

            Spacer()
        }

    }
}

2つのテキストボックスを持つ単純なビュー:私はアプリケーションを実行すると、それだけでこのようになります。どちらも、あなたが自由に問題なしに入力できます。

アプリ

あなたは問題なくハイライト表示し、編集する255のいずれかすることができます。

しかし、私はそうのように私のVStackに影を追加するとき:

var body: some View {
    ZStack {
        Color(envColor.getColor())
        HStack {
            Spacer()
            VStack {
                HStack {
                    TextField("First", text: $envColor.stringR)
                    TextField("Second", text: $envColor.stringG)
                }
            }
            .frame(minWidth: 0, maxWidth: .infinity, minHeight: 100, maxHeight: 200)
            .background(Color.gray)
            .shadow(radius: 5)

            Spacer()
            VStack {
                Text("Right Side")
            }
            .frame(minWidth: 0, maxWidth: .infinity, minHeight: 100, maxHeight: 200)

            Spacer()
        }

    }
}

アプリはまったく同じに見えますが、私はを入力することはできませんTextFieldまったく秒。彼らは、ハイライト表示されませんし、私はそれらを入力することはできません。私は、デバッグビュー階層を見て、それがで罰金に見えるTextField前でS。

ここではビデオだ影でそれを使用して、私のは。あなたが見ることができるようにカーソルが私の編集をできるように変更されません。

VStack実際に原因の問題に影を追加していますか?そして、私は間違って何かをやって?それともこれはバグでしょうか?

ラフ

おそらくこれは欠陥である - あなたは、アップルにフィードバックを提出することができます。:バックグラウンドに入れ影 - その間、私は解決策を提案することができます

Xcodeの11.4 / MacOSの10.15.4でテスト

デモ

VStack {
    HStack {
        TextField("First", text: $first)
        TextField("Second", text: $second)
    }
}
.frame(minWidth: 0, maxWidth: .infinity, minHeight: 100, maxHeight: 200)
.background(Color.gray.shadow(radius: 5))    // << here !!

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=377333&siteId=1