// 子類化UITextField,增加insert屬性
@interfaceWZBTextField :UITextField
@property(nonatomic, assign)UIEdgeInsetsinsets;
@end
// 在.m文件重寫下列方法
-(CGRect)textRectForBounds:(CGRect)bounds {
? ? CGRect paddedRect = UIEdgeInsetsInsetRect(bounds,self.insets);
? ? if(self.rightViewMode == UITextFieldViewModeAlways ||self.rightViewMode == UITextFieldViewModeUnlessEditing) {
? ? ? ? return[selfadjustRectWithWidthRightView:paddedRect];
? ? }
? ? returnpaddedRect;
}
-(CGRect)placeholderRectForBounds:(CGRect)bounds {
? ? CGRect paddedRect = UIEdgeInsetsInsetRect(bounds,self.insets);
? ? if(self.rightViewMode == UITextFieldViewModeAlways ||self.rightViewMode == UITextFieldViewModeUnlessEditing) {
? ? ? ? return[selfadjustRectWithWidthRightView:paddedRect];
? ? }
? ? returnpaddedRect;
}
-(CGRect)editingRectForBounds:(CGRect)bounds {
? ? CGRect paddedRect = UIEdgeInsetsInsetRect(bounds,self.insets);
? ? if(self.rightViewMode == UITextFieldViewModeAlways ||self.rightViewMode == UITextFieldViewModeWhileEditing) {
? ? ? ? return[selfadjustRectWithWidthRightView:paddedRect];
? ? }
? ? returnpaddedRect;
}
-(CGRect)adjustRectWithWidthRightView:(CGRect)bounds {
? ? CGRect paddedRect = bounds;
? ? paddedRect.size.width -= CGRectGetWidth(self.rightView.frame);
? ? returnpaddedRect;
}