iOS 修改textField的placeholder的字体颜色大小

在搭建UI界面长长用到textField,有时候就需要修改textField的placeholder的字号和颜色我总结了两种方法

  • iOS6.0之后,有attributedPlaceholder属性,因此可以直接通过它设置。
  • 在iOS6.0之前,可以通过KVC来设置_placeholderLabel的属性值。

一、KVC模式不算私有API,这是通过KVC获取的,虽然苹果并不希望我们这么做,但是可以正常上架

 [textField setValue:hexColor(999999) forKeyPath:@"_placeholderLabel.textColor"];//改变默认提示颜色
 [textField setValue:[UIFont systemFontOfSize:14] forKeyPath:@"_placeholderLabel.font"];//改变默认提示字号

二、iOS6.0之后提供的attributedPlaceholder属性,与上面效果一样

UITextField *textField = [[UITextField alloc]initWithFrame:(CGRect){0, 64, 200, 200}];
NSString *holderText = @"testFieldPlaceholder";
NSMutableAttributedString *placeholder = [[NSMutableAttributedString alloc]initWithString:holderText];
[placeholderaddAttribute:NSForegroundColorAttributeName
                  value::hexColor(999999)
                  range:NSMakeRange(0, holderText.length)];
[placeholderaddAttribute:NSFontAttributeName
                  value:[UIFont systemFontOfSize:14]
                  range:NSMakeRange(0, holderText.length)];
textField.attributedPlaceholder = placeholder;
[self.view addSubview:textField];

ps: hexColor(999999) 不必纠结 ;

你可能感兴趣的:(iOS 修改textField的placeholder的字体颜色大小)