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的占位文字的颜色,和光标的颜色
IOS 怎么设置UIButton UITextField 不可点击且变灰