我有一个UITextField
子类,其中我重写了一些方法(请参阅下面的代码)。问题是,当我输入文本并且文本达到边界时,它将不再显示我输入的内容。在调试模式下,我发现UIFieldEditor
比文本提交的要宽得多。UITextField文本不在左侧滚动
这里是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)];
}
这里就是我使用这个类的代码:
// 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;
如何获取文本左侧滚动出时用户在这个文本字段中输入一个大字符串?
没有工作... – user426132