如果我们想实现这种效果,点击相应的文本,占位文字显示高亮 ,而其他文本框非高亮
![](https://images2015.cnblogs.com/blog/818241/201605/818241-20160530221100258-1045392869.gif)
![](https://images2015.cnblogs.com/blog/818241/201605/818241-20160530221117883-140087907.png)
相应代码
#import <UIKit/UIKit.h> @interface XMGTextField : UITextField /** 颜色 */ @property(nonatomic,strong)UIColor *placeholderColor; @end #import "XMGTextField.h" #import <objc/runtime.h> static NSString *const XMGPacerholderColorKeyPath=@"_placeholderLabel.textColor"; @implementation XMGTextField // //-(void)drawPlaceholderInRect:(CGRect)rect{ // [self.placeholder drawInRect:CGRectMake(0, 10, rect.size.width, 25) withAttributes:@{NSForegroundColorAttributeName:[UIColor grayColor], // NSFontAttributeName:self.font // }]; //} /** * 运行时(Runtime): 苹果官方一台c语言库 能做很多低层操作(比如访问隐藏的一些成员变量成员方法) */ -(void)awakeFromNib{ // 设置光标颜色和文字颜色一致 self.tintColor=self.textColor; // 不成第一响应者 [self resignFirstResponder]; } /** * 当前文本框失去焦点是就会调用 */ -(BOOL)resignFirstResponder{ // 修改占位文字颜色 [self setValue:[UIColor grayColor] forKeyPath:XMGPacerholderColorKeyPath]; return [super resignFirstResponder]; } /** * 当前文本框聚集焦点就会调用 */ -(BOOL)becomeFirstResponder{ [self setValue:self.textColor forKeyPath:XMGPacerholderColorKeyPath]; return [super becomeFirstResponder]; } -(void)setPlaceholderColor:(UIColor *)placeholderColor{ _placeholderColor = placeholderColor; // 修改占位文字颜色 [self setValue:placeholderColor forKeyPath:XMGPacerholderColorKeyPath]; } @end