标签: textfieldstyle

macOS 上带有聚焦环的 SwiftUI 自定义 TextField

我想在 macOS 上拥有自定义 TextField 样式,它也有对焦环

但是我遇到了两个问题,具体取决于我是否使用.textFieldStyle(.roundedBorder).textFieldStyle(.plain)

struct FTextFieldStyle: TextFieldStyle {
    func _body(configuration: TextField<Self._Label>) -> some View {
        configuration
            .textFieldStyle(.roundedBorder)
            .frame(maxWidth: .infinity)
            .padding(6)
            .foregroundColor(Color.black)
            .background(Color.white)
            .cornerRadius(6)
            .shadow(color: .black.opacity(0.25), radius: 2, x: 0, y: 0.5)
            .focusable()
    }
}

TextField("E-mail", text: $email).textFieldStyle(FTextFieldStyle())
Run Code Online (Sandbox Code Playgroud)

使用 .roundedBorder 时

  1. 对焦环未对准

  2. “边框”无法移除

在此输入图像描述

使用 .plain 时

  • 我无法恢复对焦环功能,即使添加 .focusable(),对焦环也消失了

在此输入图像描述

那么如何拥有一个带有系统焦点环的自定义TextField呢?

macos textfield swift swiftui textfieldstyle

3
推荐指数
1
解决办法
906
查看次数

标签 统计

macos ×1

swift ×1

swiftui ×1

textfield ×1

textfieldstyle ×1