关闭

UITextField点击选中文字

标签: UITextField选中文字endDocument为空
769人阅读 评论(0) 收藏 举报

先上代码:

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

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


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8085次
    • 积分:204
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:7篇
    • 译文:0篇
    • 评论:0条