首页 > iOS 如何设置UITextField的光标其实位置

iOS 如何设置UITextField的光标其实位置

UITextField *text = [[UITextField alloc] init];

text.text = tagName;

怎样设置将光标定位在 tagName后面 tagName是个变量 谢谢解答 而且不能删除tagName


UITextField进入焦点状态就可以啊。

UITextField代理方法

  1. 声明代理
@interface XXXPageViewController ()<UITextFieldDelegate>
  1. 指定代理
UITextField *text = [[UITextField alloc] init];
text.delegate = self;
text.text = tagName;

  1. 获取焦点
[text becomeFirstResponder];

总代码

UITextField *text = [[UITextField alloc] init];
text.delegate = self;
text.text = @"XXXX";
[text becomeFirstResponder];

定位光标在那个位置容易,但是不能删除就不容易了。

一个方法是监听文本框的内容改变的事件,一旦删除了就把它加回来……

另一个方法是,前面的tag是另外一个单独的view,贴在文本框里。这样如果哪天产品想要给tag做出一个不同的样式,也能很快改出来。个人想法哈。


控制光标在任意位置

    UITextRange *range = self.tvName.selectedTextRange;
    UITextPosition* start = [self.tvName positionFromPosition:range.start inDirection:UITextLayoutDirectionLeft offset:textField.text.length];
    if (start)
    {
        [self.tvName setSelectedTextRange:[self.tvName textRangeFromPosition:start toPosition:start]];
    }

【热门文章】
【热门文章】