UITextField点击选中文字

先上代码:

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

}


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

textFieldDidBeginEditing里面实现

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


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

textFieldShouldEndEditing

中实现

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

也可以有选中效果,至于效果,因需求而异


阅读更多
上一篇WKWebView 点击链接无反应
下一篇UITextField 第一次点击卡顿速度慢解决方法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭