搜索栏文字字段颜色不会更改

时间:2017-10-28 15:44:04

标签: ios swift uitextfield uicolor

当我尝试更改搜索栏的textfield的文字颜色或占位符文字颜色时,没有任何反应。

文本字段嵌入在搜索控制器的搜索栏中。

这是我正在使用的代码:

let textField = self.searchController.searchBar.value(forKey: "searchField") as! UITextField

textField.textColor = .white

我觉得有趣的是,当我尝试更改它的色调时,它会起作用:

textField.tintColor = .white

有谁知道为什么会这样?

我正在尝试将文本和占位符文本颜色设置为白色。

谢谢!

2 个答案:

答案 0 :(得分:1)

以下是您的操作方法:

let textField = searchBar.value(forKey: "searchField") as? UITextField
textField?.textColor = .white
textField?.attributedPlaceholder = NSAttributedString(string: "Placeholder", attributes: [NSForegroundColorAttributeName: UIColor.white])

首先获取textField并设置textColor,然后为attributedPlaceholder设置textField

<强>更新
对于您的searchController,请执行以下操作:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    let textField = self.searchController.searchBar.value(forKey: "searchField") as? UITextField
    textField?.textColor = .white
    textField?.attributedPlaceholder = NSAttributedString(string: "1334", attributes: [NSAttributedStringKey.foregroundColor: UIColor.white])
}

哪个会给你: enter image description here enter image description here

答案 1 :(得分:0)

更改textView的placeHolder颜色:

textField.attributedPlaceholder = NSAttributedString(string:"Your placeholder", 
attributes: [NSForegroundColorAttributeName: //your color])

一些解释。您需要访问attributedPlaceholder的属性UItextField以定位textField的占位符。然后,您需要向占位符添加属性。在您的情况下,此属性为NSForegroundColorAttributeName,用于控制前瞻性颜色。最后只需添加一个UIColor,如UIColor.white ......