改變設定文字框佔位文字和圖片,文字框占文字圖片
如果我們想實現這種效果,點擊相應的文本,佔位文字顯示高亮 ,而其他文字框非高亮 相應代碼
#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