当前位置: 首页 > 面试题库 >

SwiftUI。如何更改TextField的占位符颜色?

夔高寒
2023-03-14
问题内容

我想更改TextField的占位符颜色,但是找不到它的方法。

我尝试设置foregroundColoraccentColor,但它不会更改占位符的颜色。

这是代码:

TextField("Placeholder", $text)
    .foregroundColor(Color.red)
    .accentColor(Color.green)

也许还没有API?


问题答案:

目前还没有api。 但您可以

ZStack自己使用和实现占位符:

var body: some View {
    ZStack(alignment: .leading) {
        if text.isEmpty { Text("Placeholder").foregroundColor(.red) }
        TextField("", text: $text)
    }
}

现在,您可以像老板一样使用任何类型的编辑。

-自定义TextField

您总是可以创建自己的custom,View以在所有地方使用:

struct CustomTextField: View {
    var placeholder: Text
    @Binding var text: String
    var editingChanged: (Bool)->() = { _ in }
    var commit: ()->() = { }

    var body: some View {
        ZStack(alignment: .leading) {
            if text.isEmpty { placeholder }
            TextField("", text: $text, onEditingChanged: editingChanged, onCommit: commit)
        }
    }
}

用法 TextField带占位符)

struct ContentView: View {
    @State var text = ""

    var body: some View {
        CustomTextField(
            placeholder: Text("placeholder").foregroundColor(.red),
            text: $text
        )
    }
}


 类似资料:
  • 问题内容: 聚焦输入字段时如何更改占位符的颜色?我使用此CSS设置默认颜色,但是如何更改焦点? 问题答案: 试试这个,这应该工作:

  • 问题内容: 我已经尝试了几个小时的搜索结果,但无法弄清楚。也许是不可能的。我正在尝试更改占位符文本和UISearchBar的放大镜的色调颜色。如果这很重要,我只针对iOS 8.0+。这是我的代码及其现在的样子: 我希望搜索和放大镜是白色,或者是深绿色。 问题答案: 如果您有可以使用的自定义图像,则可以使用类似于以下内容的方式设置图像并更改占位符文本颜色: 在该示例中,我使用了PurpleColor

  • 问题内容: 我这样更改了TextField样式: 现在,我希望它在用户点击时更改样式。 我的CustomTextFieldStyle定义为: 问题答案: 你有自己的TextStyle示例吗?请分享吧! 更新 您最好在样式中使用一些参数并将其绑定到“父”视图 结果看起来像

  • 问题内容: 我有一个实现深蓝色的设计,因为默认情况下,占位符文本为深灰色,所以我几乎无法分辨出占位符文本的含义。 我已经用谷歌搜索了这个问题,但是我还没有想出使用Swift语言而不是Obj-c的解决方案。 有没有一种方法可以使用Swift 更改占位符文本的颜色? 问题答案: 您可以使用 属性字符串 设置占位符文本。通过:传递所需的颜色: 对于Swift 3+,请使用以下命令: 对于Swift 4.

  • 我有一个实现深蓝色的设计,因为占位符文本默认是深灰色,我几乎看不出占位符文本说了什么。 当然,我已经在谷歌上搜索了这个问题,但我还没有找到一个解决方案,因为我使用的是Swift语言,而不是Obj-c。 有没有办法使用Swift更改中占位符文本颜色?

  • 问题内容: 我正在网上搜索,但没有找到任何东西。我正在尝试使用javascript更新文本框的占位符颜色,但是我该怎么做呢?我有一个颜色选择器,颜色正在变化。 如果我的CSS中有类似的内容,该如何更新? 是否有JavaScript命令可以对此进行编辑?就像是 问题答案: 使用CSS变量。您还可以仅定位所需的元素 CSS变量在修改您无法使用JS之类的伪类/伪元素(例如/ / 等)时非常有用。您只需使