SwiftUI TextField 和覆盖

SwiftUI TextField and overlay

我想向 textField 添加叠加视图 (Color.black)(目标是降低亮度)。

但是,我添加overlay view后,textField无法使用(select)。

我尝试了 allowsHitTesting(false),但没有用。

有谁知道如何解决这个问题?

TextField(title: StringProtocol, text: Binding<String>)
    .overlay(Color.black.opacity(0.2))

Overlays 在 TextField 前面创建辅助视图。您可以使用背景获得相同的结果。这是代码。希望这有帮助。

import SwiftUI

struct ContentView: View {
    @State var name: String = "This is a test."
    var body: some View {
        TextFieldView(name: $name)
    }
}

struct TextFieldView: View {
    @Binding var name: String
    var body: some View {
        TextField("Name", text: $name)
            .background(
                Color.black.opacity(0.2)
            )
    }
}

要降低亮度,请使用 .brightness 修饰符!

TextField("title", text: $txt).brightness(0.5)

通常,.brightness、.opacity、.foregroundColor、.background 的组合可帮助您根据需要调整视觉外观。

要更改光标样式,请使用 .accentColor