我有一个UITextField子类,我已经覆盖了一些方法(参见下面的代码).问题是,当我输入它并且文本达到严格边距时,它将不再显示我正在键入的内容.在视图调试模式中,我看到UIFieldEditor比文本提交的要宽得多.
这是UITextFiled子类代码:
- - (instancetype)init
- {
- self = [super init];
- if (self) {
- self.edgeInsets = UIEdgeInsetsMake(7,10,15);
- }
- return self;
- }
- - (id)initWithFrame:(CGRect)frame{
- self = [super initWithFrame:frame];
- if (self) {
- self.edgeInsets = UIEdgeInsetsMake(7,15);
- }
- return self;
- }
- -(id)initWithCoder:(NSCoder *)aDecoder{
- self = [super initWithCoder:aDecoder];
- if(self){
- self.edgeInsets = UIEdgeInsetsMake(7,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)];
- }
这是我使用这个类的代码:
- // 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,5,5)];
- _myTextField.leftView = leftView;
- _myTextField.leftviewmode = UITextFieldviewmodeAlways;
当用户在此文本字段中键入大字符串时,如何让文本在左侧滚动?