pterry26
pterry26

Reputation: 1240

What's the default color for placeholder text in UITextField?

Historic question. UIColor.placeholderText now exists.


Does anyone know what color a UITextField's placeholder text is, by default? I'm trying to set a UITextView's text to the same color. I've read elsewhere that it is UIColor.lightGrayColor() but it is actually a little lighter.

Upvotes: 73

Views: 40893

Answers (13)

Daniel Fernandes
Daniel Fernandes

Reputation: 1303

The colour is #C7C7CD (r: 199 g:199 b: 205) (as what pterry26 said)

and the font-family is HelveticaNeue-Medium and size is 16


Note that this is a guess at the color. The color is freely available in iOS, UIColor.placeholderText

Upvotes: 112

Andrey Gordeev
Andrey Gordeev

Reputation: 32529

Starting from iOS 13 you should use UIColor.placeholderText to make sure the element looks good in both light and dark modes. Documentation:

The color for placeholder text in controls or text views.

Upvotes: 3

danqing
danqing

Reputation: 3668

Just to add that in iOS 13 (and later), the placeholder color is exposed by Apple via

UIColor.placeholderText

and it's dynamic (supports both dark and light).

Putting it with pre-iOS 13:

static var placeholderText: UIColor {
  if #available(iOS 13.0, *) {
    return .placeholderText
  }
  return UIColor(red: 60, green: 60, blue: 67)!.withAlphaComponent(0.3)
}

Upvotes: 16

RyanM
RyanM

Reputation: 4594

Better to grab the color off of a text field dynamically in case it changes in the future. Default to 70% gray, which is pretty close

extension UITextField {
  var placeholderColor: UIColor {
    return attributedPlaceholder?.attributes(at: 0, effectiveRange: nil)[.foregroundColor] as? UIColor ?? UIColor(white: 0.7, alpha: 1)
  }
}

Upvotes: 0

AbdulAziz Rustam Ogli
AbdulAziz Rustam Ogli

Reputation: 137

According to the Apple code, it is 70% gray

open var placeholder: String? // default is nil. string is drawn 70% gray

and if we convert it to rgb :

UIColor.init(red: 178/255, green: 178/255, blue: 178/255, alpha: 1)

Upvotes: 2

Bram De Geyter
Bram De Geyter

Reputation: 1098

You can get this colour from inspecting the attributedPlaceholder from the UITextField.

The default seems to be: NSColor = "UIExtendedSRGBColorSpace 0 0 0.0980392 0.22";

You could add an extension (or category) on UIColor:

extension UIColor {
    static var placeholderGray: UIColor {
        return UIColor(colorLiteralRed: 0, green: 0, blue: 0.0980392, alpha: 0.22)
    }
}

2018, latest syntax is just:

extension UIColor {
    static var officialApplePlaceholderGray: UIColor {
        return UIColor(red: 0, green: 0, blue: 0.0980392, alpha: 0.22)
    }
}

#colorLiteralRed was deprecated. Be aware of this in some cases.

Upvotes: 45

EmmaJ
EmmaJ

Reputation: 35

The code #999999 matches perfectly on my form!

Upvotes: 0

Peter Staev
Peter Staev

Reputation: 1119

The actual color is not a solid one but has transparency in it. So the closest color is

Red: 4, Green: 4, Blue: 30, Alpha: ~22%

If you use this with a white background you will get what @pterry26 wrote above.

Upvotes: 12

Vaibhav Saran
Vaibhav Saran

Reputation: 12908

I believe it is R:191 G:191 B:198 A:1. See image below. Here marked controls are UIButton with above Title TextColor and rest are UITextFields with default placeholder color. If iOS makes difference, then this one is iOS 9. enter image description here

Upvotes: 0

DogCoffee
DogCoffee

Reputation: 19966

Using the values from the correct answer above

extension UIColor {

    class func greyPlaceholderColor() -> UIColor {
        return UIColor(red: 0.78, green: 0.78, blue: 0.80, alpha: 1.0)
    }

}

Upvotes: 6

haroon jamil
haroon jamil

Reputation: 65

Set label font to "light"
mylabel.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:14.0f];
and color code for placeholder text is
#c2b098

Upvotes: -2

SemperFi
SemperFi

Reputation: 15

I think you can get the color by use the tools in your Mac.enter image description here

Upvotes: -2

pterry26
pterry26

Reputation: 1240

I sent a screenshot to my mac and used Photoshop's eyedropper tool. For anyone interested, this is at least a very good approximation of the placeholder color on a white background:

Red: 199, Green: 199, Blue: 205

Upvotes: 12

Related Questions