// CustomField.h #import <UIKit/UIKit.h>
@interface CustomField : UITextField @end
// CustomField.m #import "CustomField.h" @implementation CustomField - (id)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { // Initialization code } return self; } /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. */ - (void)drawRect:(CGRect)rect { // Drawing code } -(CGRect)clearButtonRectForBounds:(CGRect)bounds { return CGRectMake(bounds.origin.x +bounds.size.width - 40,bounds.origin.y+bounds.size.height/2-16/2, 16, 16); } //bounds.size.height -20 //控制placeHolder的位置,左右缩20 -(CGRect)placeholderRectForBounds:(CGRect)bounds { //return CGRectInset(bounds,20, 0); CGRect inset= CGRectMake(bounds.origin.x+10, bounds.origin.y+5, bounds.size.width -10, bounds.size.height); return inset; } //控制显示文本的位置 -(CGRect)textRectForBounds:(CGRect)bounds { CGRect inset= CGRectMake(bounds.origin.x+10, bounds.origin.y, bounds.size.width -10, bounds.size.height);//更好理解些 return inset; } //控制编辑文本的位置 -(CGRect)editingRectForBounds:(CGRect)bounds { //return CGRectInset(bounds, 10 , 0 ); CGRect inset= CGRectMake(bounds.origin.x +10, bounds.origin.y, bounds.size.width -10, bounds.size.height); return inset; } //控制左视图位置 - (CGRect)leftViewRectForBounds:(CGRect)bounds { CGRect inset= CGRectMake(bounds.origin.x +10, bounds.origin.y, bounds.size.width-250, bounds.size.height); return inset; //returnCGRectInset(bounds,50,0); } - (CGRect)rightViewRectForBounds:(CGRect)bounds; { CGRect inset= CGRectMake(bounds.origin.x +bounds.size.width-30, bounds.origin.y+bounds.size.height/2-10,20,20); return inset; } //控制placeHolder的颜色、字体 - (void)drawPlaceholderInRect:(CGRect)rect { //CGContextRef context =UIGraphicsGetCurrentContext(); //CGContextSetFillColorWithColor(context,[UIColor yellowColor].CGColor); [[UIColor brownColor] setFill]; [[self placeholder] drawInRect:rect withFont:[UIFont systemFontOfSize:18]]; } @end // 使用方法,在XXXViewController里导入#import "CustomField.h" CustomField *myField=[[CustomField alloc]init];
原文:http://www.cnblogs.com/huluo666/p/3524199.html