为什么我不能使用 .cornerRadius() 在 VStack 中编辑 TextField?

Why cannot I edit TextField in VStack with a .cornerRadius()?

我在使用 Xcode 11 beta 4 遇到 SwiftUI 时遇到无法在 VStack 和 [=13= 中编辑 TextField(最后一个除外)的问题].

删除 MARKED 行时,代码正常。

struct ParentView: View {
    var body: some View {
        VStack {
            ForEach(0 ..< 3) { index in
                ChildView()
            }
        }
        .cornerRadius(10) // MARKED
    }
}

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

    var body: some View {
        TextField("", text: $text)
            .textFieldStyle(.roundedBorder)
    }
}

无论如何,不​​会显示任何错误消息。

我不确定您是否可以将 .cornerRadius() 修饰符添加到 VStack 本身。为什么不将它添加到 ChildView 中的 textField:

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

    var body: some View {
        TextField("", text: $text)
            .textFieldStyle(.roundedBorder)
            .cornerRadius(10)
    }
}

当子视图具有滚动视图或其他交互元素时,设置 cornerRadius 当前会导致错误行为(不响应触摸)。

我建议改用 .mask(RoundedRectangle(cornerRadius: 10.0))。这是 更少 的越野车,但仍然不能始终 100% 工作。

此外,file feedback