РЕДАКТИРОВАНИЕ 16.01.2015: Это было написано в 2012 году и больше не является точным. Используйте -textContainerInset, как указано выше.
Оригинальный пост:
Использование contentInset на самом деле не будет работать. У вас есть два разумных варианта: подкласс UITextField и переопределение textRectForBounds: и editRectForBounds: методы или прозрачное создание текстового поля над UIView и стилизация UIView.
Пример подкласса UITextField:
- (CGRect)textRectForBounds:(CGRect)bounds {
return CGRectInset(bounds, 5, 5);
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
return CGRectInset(bounds, 5, 5);
}
Пример обёртывания в UIView:
UIView *wrapView = [[UIView alloc] initWithFrame: CGRectMake(10, 10, 200, 30)];
[wrapView addSubview:textView];
wrapView.layer.borderColor = [UIColor darkGrayColor].CGColor;
wrapView.layer.borderWidth = 2.0;
wrapView.layer.cornerRadius = 5.0;