在搭建UI界面长长用到textField,有时候就需要修改textField的placeholder的字号和颜色我总结了两种方法
<p>
- 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) 不必纠结 ;