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


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

text.text = tagName;

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

ios objective-c

萝莉控萝莉 9 years, 11 months ago

控制光标在任意位置


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

百野栞的创可贴 answered 9 years, 11 months ago

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

hmlhml answered 9 years, 11 months ago

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

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

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

亚兰那一卡 answered 9 years, 11 months ago

Your Answer