标签:self 选中 nslog editing change 全选 cto add return
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
中实现
标签:self 选中 nslog editing change 全选 cto add return
原文地址:http://www.cnblogs.com/GJ-ios/p/6847664.html