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

中实现

时间: 2024-12-12 22:29:40

UITextField点击选中文字的相关文章

android中TextView 添加ClickableSpan后点击选中文字背景问题

TextView中的setHighlightColor(int color)用于设置选中文字背景色高亮显示. 比如以下: public class MainActivity extends ActionBarActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); FrameLayout frameLayout = new FrameL

Xcode如何拖拽选中文字、拖拽代码

不管是文本编辑,还是代码工具,一般都提供了用鼠标拖拽选中文字到指定地方的功能,但是在Xcode里貌似这样有点儿难,你会发现当想拖动的时候会有时候成功,但是大部分时间都是又处于选择状态.一开始我以为是Mac系统的原因,后来发现在其他地方:浏览器就可以拖动,我想这可能是Xcode里去掉了,但是有时候能拖拽是怎么回事.好吧,我不coding了,非得找出来. 废话不多说了: 点击选中的代码(文字),不要移动和松开鼠标左键,当竖线变成箭头之后就可以拖动了,其实不需要多少时间,基本上就是:不要直接点鼠标左键

js 选中文字

选中文字,文字背景是蓝色 当前点击的元素: var e = e || event; var tag = e.target || e.srcElement; 选中文字:window.getSelection().selectAllChildren(tag); 取消选中的效果:window.getSelection().removeAllRanges();

选中文字之后显示其他层

选中文字这个其实不难,主要还是兼容性的问题 在IE和OPERA下用document.selection 在FF.safari.chrome下就用window.getSelection()这个方法,不过这方法返回的是对象,如果要用的话,就要转换为字符串 先结构部分: <p id="p1" style ="width:300px"> 我们终究会死.所以我们的人生目标不该是长命百岁,而应该做点自己想做的. 流转的时光,照一脸沧桑.来不及遗忘,来不及细数.眉毛这

javaScript实现选中文字提示新浪微博分享的效果

<!DOCTYPE html> <html xmlns:wb="http://open.weibo.com/wb"> <head> <meta charset="utf-8"> <title>javaScript实现选中文字提示新浪微博分享的效果</title> <style type="text/css"> #div1{ position: absolute;

解决vim选中文字不能复制的问题

转载自本人独立博客:https://liushiming.cn/2020/01/18/vim-copy-issue-in-iterm2/ 概述 最近发现在iterm2中打开vim,用鼠标选中文字,并用command + c复制选中的文字,但粘贴出来是空的.查了一圈终于在iterm2的官方gitlab issue库里发现了解决办法.将Enable mouse reporting这个设置去掉即可. 版本信息 操作系统 Mac os 10.15.2 iterm2 iterm2 3.3.6 iterm2

CSS3特殊伪类::selection改变页面选中文字的样式

一般在网页上面,选中文字的时候,文字的样式是会改变的,当然,样式也都是千篇一律的浏览器的默认样式,蓝底白字,偶然看到有些网页上面当文字选中的时候会有不一样的样式,当时就很是好奇,后来才慢慢发现是css的一个伪类::selection ::selection是一个CSS3选择器(这也告诉这我们CSS3必须要去熟悉,这玩意确实可以弄出很多意想不到的好效果.) 兼容性:IE9+,Chrome,Opera,Safari,Firefox…(也可以去查看)caniuse.com#search=::selec

用js onselectstart事件鼠标禁止选中文字

IE&&Chrome中适用此方法 document.onselectstart=function(){return false;} onselectstart是防止内容被选中默认状态是true <body onselectstart=return(event.srcElement.type=='text')> 选不中 <input type="text" name="" value="来选吧"> </

html 富文本编辑器相关--输出选中文字和主动选择文字

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div class="app" contenteditable="true"> <span id="con