美文网首页iOS常用
iOS开发 UITextField修改光标起始位置

iOS开发 UITextField修改光标起始位置

作者: AR24 | 来源:发表于2020-10-21 09:53 被阅读0次

修改UITextField光标位置的三个方法

1.既修改了光标起始位置,同时也修改了文本起始位置,并且文字不会在超出文本框时,被挤到文本边框处。建议给textField添加一个leftView和rightView这个方式:

    CGRect frame = self.textField.frame;
    frame.size.width = 10;// 距离左侧的距离
    UIView *leftview = [[UIView alloc] initWithFrame:frame];
    self.textField.leftView = leftview;
    self.textField.leftViewMode = UITextFieldViewModeAlways;
    CGRect frame1 = self.textField.frame;
    frame1.size.width = 10;// 距离右侧的距离
    frame1.origin.x = frame1.size.width - 10;
    UIView *rightView = [[UIView alloc] initWithFrame:frame1];
    self.textField.rightView = rightView;
    self.textField.rightViewMode = UITextFieldViewModeAlways;

1.2 可以同时修改光标和文本位置,但是除了设置paddingLeft有用之外,其它几个方向上的会失败,而且超出输入范围之后,要么起始位置改变,要么文本不会主动左移显示最后输入的文本(不建议使用)

[self.textField setValue:[NSNumber numberWithInt:10] forKey:@"paddingLeft"];

1.3 新建一个textField,重载以下方法

//未编辑状态下的起始位置
 - (CGRect)textRectForBounds:(CGRect)bounds {
     return CGRectInset(bounds, 5, 0);
 }
 // 编辑状态下的起始位置
 - (CGRect)editingRectForBounds:(CGRect)bounds {
     return CGRectInset(bounds, 5, 0);
 }
 //placeholder起始位置
 - (CGRect)placeholderRectForBounds:(CGRect)bounds {
     return CGRectInset(bounds, 5, 0);
 }

相关文章

网友评论

    本文标题:iOS开发 UITextField修改光标起始位置

    本文链接:https://www.haomeiwen.com/subject/ptbkmktx.html