在UITextField 中其默认的颜色是谈灰色的占位文字,假如你要更改其占位文字的颜色可以通过以上类别来帮助你轻松搞定
.h文件
#import <UIKit/UIKit.h>
@interface UITextField (CYXExtension)
/** 占位文字颜色 */
@property (strong, nonatomic) UIColor * placeholderColor;
@end
.m文件
#import "UITextField+CYXExtension.h"
static NSString * const CYXPlaceholderColorKey = @"placeholderLabel.textColor";
@implementation UITextField (CYXExtension)
/**
* 自定义占位文字颜色
*
* @param placeholderColor 接收颜色
*/
- (void)setPlaceholderColor:(UIColor *)placeholderColor{
if (placeholderColor == nil) {
[self setValue:CYXGrayColor(255 * 0.65) forKeyPath:CYXPlaceholderColorKey];
}else{
// 保存之前的占位文字
NSString *placeholder = self.placeholder;
// 保证placeholder被创建
self.placeholder = @" ";
[self setValue:placeholderColor forUndefinedKey:CYXPlaceholderColorKey];
// 恢复之前的占位文字
self.placeholder = placeholder;
}
}
/**
* 获得占位文字颜色
*/
- (UIColor *)placeholderColor{
return [self valueForKeyPath:CYXPlaceholderColorKey];
}
@end
敬请使用吧
网友评论