你的位置:首页 > 操作系统

[操作系统]改变设置文本框占位文字和图片


如果我们想实现这种效果,点击相应的文本,占位文字显示高亮 ,而其他文本框非高亮
 

 
相应代码
#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