Search code examples
swiftmdc-components

How can I change the placeholder (label) color for MDCOutlinedTextFields?


I'm having a hard time changing the text color for the placeholder label that is used as a hint when not in focus and as a label on top when in focus. (Photo below)

enter image description here

The is reason I'm switching out all my MDC-TextFields and MDC-TextInputControllers is because they are all being deprecated for the New MDC-Outlined Textfields.

The code below is a function within an extension that would simply setup the general background & sub-label colors for all MDC-Outlined Textfields throughout the app.

I have tried a number of functions with no luck(commented out below).

extension MDCOutlinedTextField {
    
    func setUpGeneralBackgroundColors(){
        
        
        //Text color
       self.setTextColor(UIColor.white, for: .normal)
        self.setTextColor(UIColor.white, for: .editing)
        
        //Border color
        self.setOutlineColor(UIColor.white, for: .normal)
        self.setOutlineColor(UIColor.white, for: .editing)
        
        //self.setFloatingLabelColor(UIColor.white, for: .normal)
        //self.setFloatingLabelColor(UIColor.white, for: .editing)
        //self.setFloatingLabelColor(UIColor.white, for: .disabled)

     // self.setNormalLabelColor(UIColor.purple, for: .normal)
      //  self.setNormalLabelColor(UIColor.purple, for: .editing)
       // self.setNormalLabelColor(UIColor.purple, for: .disabled)
        
       // self.label.tintColor = UIColor.purple
        //self.label.textColor = UIColor.systemPink
        //self.label.shadowColor = UIColor.cyan
        //self.label.backgroundColor = UIColor.red
        
        //Changes icon colors within the text field if any
        self.tintColor = .green
        
    }
}

Solution

  • I figured the problem, in the storyboard where I have these new textfields I had a raw string for the placeholder which override the swift code behind the scenes and prevented me from changing colors.

    Note: This problem will NOT occur with the now deprecated MDC-Textfields.

    If you guys have a placeholder value in the storyboard when using these MDC-Outlined Textfields in storyboards, (not to mixed up with the swift code) then get rid of them.