UITextField点击选中文字

Posted 梦之魂_JG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UITextField点击选中文字相关的知识,希望对你有一定的参考价值。

1、先创建UITextField

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor greenColor];
    
    
    UITextField *TextF = [[UITextField alloc] initWithFrame:CGRectMake(10, 150, 200, 40)];
    
    TextF.borderStyle = UITextBorderStyleRoundedRect;
    TextF.text = @"11";
    TextF.delegate = self;
    [self.view addSubview:TextF];
    
    [TextF becomeFirstResponder];
    
    
    
}

 2、不要在textFieldShouldBeginEditing里面实现,因为endDocument取出来为nil.

在textFieldDidBeginEditing里面实现

-(void) textFieldDidBeginEditing:(UITextField *)textField
{
    NSLog(@"%@",textField.selectedTextRange);
    UITextPosition *endDocument = textField.endOfDocument;//获取 text的 尾部的 TextPositext
    
    UITextPosition *end = [textField positionFromPosition:endDocument offset:0];
    UITextPosition *start = [textField positionFromPosition:end offset:-textField.text.length];//左-右+
    textField.selectedTextRange = [textField textRangeFromPosition:start toPosition:end];
}

 

3、另外可以利用shouldChangeCharactersInRange实现补全选中的功能

哦,如果反复点击textfiled出现第一次选中,第二次选中的状态的话,如果想一直被选中

 

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField{
    UITextPosition *beginDocument = textField.beginningOfDocument;
    UITextPosition *end = [textField positionFromPosition:beginDocument offset:0];
    UITextPosition *start = [textField positionFromPosition:beginDocument offset:0];//左-右+
    textField.selectedTextRange = [textField textRangeFromPosition:start toPosition:end];
    return YES;
}

 

ps:
[textField performSelector:@selector(selectAll:) withObject: textField];
也可以有选中效果,至于效果,因需求而异

  

textFieldShouldEndEditing

中实现

以上是关于UITextField点击选中文字的主要内容,如果未能解决你的问题,请参考以下文章

iOS开发中设置UITextField的占位文字的颜色,和光标的颜色

使用Vue实现点击事件变颜色并且显示选中文字

pycharm添加Odoo代码片段

IOS 怎么设置UIButton UITextField 不可点击且变灰

在EasyUI实现点击有子节点的文字时展开但不选中,点击最终子节点才选中的功能

点击文字也可选中相对应的单选按钮或复选按钮