I have a subclass of UITextField where I redefined some methods (see code below). The problem is that when I enter it into the text and the text reaches the limit, it will no longer show what I am typing. In debug mode, I see that the UIFieldEditor much wider than the text.
Here is the subclass code of UITextFiled:
- (instancetype)init { self = [super init]; if (self) { self.edgeInsets = UIEdgeInsetsMake(7, 0, 10, 15); } return self; } - (id)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { self.edgeInsets = UIEdgeInsetsMake(7, 0, 10, 15); } return self; } -(id)initWithCoder:(NSCoder *)aDecoder{ self = [super initWithCoder:aDecoder]; if(self){ self.edgeInsets = UIEdgeInsetsMake(7, 0, 10, 15); } return self; } - (CGRect)textRectForBounds:(CGRect)bounds { return [super textRectForBounds:UIEdgeInsetsInsetRect(bounds, self.edgeInsets)]; } - (CGRect)editingRectForBounds:(CGRect)bounds { return [super editingRectForBounds:UIEdgeInsetsInsetRect(bounds, self.edgeInsets)]; }
Here is the code in which I use this class:
// alloc / init _myTextField.delegate = self; _myTextField.backgroundColor = [UIColor whiteColor]; _myTextField.layer.masksToBounds = YES; _myTextField.layer.cornerRadius = 3.0; _myTextField.returnKeyType = UIReturnKeyDone; _myTextField.clearButtonMode = UITextFieldViewModeWhileEditing; _myTextField.autocapitalizationType = UITextAutocapitalizationTypeWords; _myTextField.autocorrectionType = UITextAutocorrectionTypeNo; _myTextField.hidden = YES; _tfButton = [UIButton buttonWithType:UIButtonTypeSystem]; [_tfButton setImage:[UIImage imageNamed:@"ic_edit"] forState:UIControlStateNormal]; [self fs_addSubview:_tfButton]; [_tfButton constrainWidth:22.]; [_tfButton setTintColor:[UIColor greenColor]]; [_tfButton constrainHeight:22.]; [_tfButton constrainToRightOfView:_myTextField margin:-25.0]; [_tfButton constrainEqualCenterYWithView:_myTextField offset:0.0]; [_tfButton setUserInteractionEnabled:NO]; UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 5, 5)]; _myTextField.leftView = leftView; _myTextField.leftViewMode = UITextFieldViewModeAlways;
How to make the text scroll on the left side when the user enters a large string in this text box?
ios uitextfield
user426132
source share