Text inset for UITextField? Text inset for UITextField? ios ios

Text inset for UITextField?


Overriding -textRectForBounds: will only change the inset of the placeholder text. To change the inset of the editable text, you need to also override -editingRectForBounds:

// placeholder position- (CGRect)textRectForBounds:(CGRect)bounds {     return CGRectInset(bounds, 10, 10);}// text position- (CGRect)editingRectForBounds:(CGRect)bounds {     return CGRectInset(bounds, 10, 10);}


I was able to do it through:

myTextField.layer.sublayerTransform = CATransform3DMakeTranslation(5, 0, 0);

Of course remember to import QuartzCore and also add the Framework to your project.


If you need just a left margin, you can try this:

UItextField *textField = [[UITextField alloc] initWithFrame:...];UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, textField.frame.size.height)];leftView.backgroundColor = textField.backgroundColor;textField.leftView = leftView;textField.leftViewMode = UITextFieldViewModeAlways;

It works for me. I hope this may help.