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

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

text.text = tagName;

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

阅读 19k
3 个回答

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

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

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

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];

控制光标在任意位置

    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]];
    }

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题