在iOS开发中,对于很多初学者而言,很有可能碰到需要修改UITextField的占位文字的颜色,以及当UITextField成为第一响应者后光标的颜色,那么下面小编就介绍一下修改占位文字和光标的颜色。
1:当你在使用Storyboard开发是,点击UITextField,在点击右上角的属性检测器,其实在这里面你是找不到有可以修改占位文字和光标颜色的属性的。
2:那就进入UITextField的协议里面去查找,但是还是找不到,
3:在进代理里面去查找,看看有没有通过代理方法,返回颜色并控制占位文字的方法,但是,还是找不到
4:那就需要点击UITextField进入这个类里面去查找看看有没有相关的属性,这个里面有一个@property(nullable, nonatomic,copy)   NSAttributedString     *attributedPlaceholder 属性,这个属性是NSAttributedString类型的,而我们就是需要利用这个属性做文章才能让文字颜色变化。
NSAttributedString:带有属性的文字也叫富文本,但是这个是不可变的,一旦创建完成就器属性就不可以变了,所以类似于NSMutableArray和NSArray的区别一样,NSAttributedString也有与之对应的NSMutableAttributeString。可以在这个里面修改属性,以达到更改占位文字的目的

- (void)viewDidLoad {
    [super viewDidLoad];
   
    [self makeTextField];
   
    self.view.backgroundColor = [UIColor whiteColor];
}

- (void)makeTextField{
   
    //1:实例化一个文本输入框
    UITextField *myTextField = [[UITextField alloc]init];
   
    //2:设置文本输入框的属性
    //2.1设置文本输入框的frame
    myTextField.frame = CGRectMake(100, 50, 200, 40);
    //2.2:设置文本输入框的边框样式
    myTextField.borderStyle = UITextBorderStyleRoundedRect;
    //2.3:设置文本输入框的占位文字
    myTextField.placeholder = @"占位文字";
   
   
    NSMutableDictionary *attrs = [NSMutableDictionary dictionary];
    attrs[NSForegroundColorAttributeName] = [UIColor redColor];
    //NSAttributedString:带有属性的文字(叫富文本,可以让你的文字丰富多彩)但是这个是不可变的带有属性的文字,创建完成之后就不可以改变了  所以需要可变的
    NSMutableAttributedString *placeHolder = [[NSMutableAttributedString alloc]initWithString:@"占位文字" attributes:attrs];
    myTextField.attributedPlaceholder = placeHolder;
   
    //3:将文本输入框添加到view中去
    [self.view addSubview:myTextField];
}

运行效果:

还可以利用NSMutableAttributeString的一个方法按照范围来设置文字颜色
- (void)viewDidLoad {
    [super viewDidLoad];
   
    [self makeTextField];
   
    self.view.backgroundColor = [UIColor whiteColor];
}

- (void)makeTextField{
   
    //1:实例化一个文本输入框
    UITextField *myTextField = [[UITextField alloc]init];
   
    //2:设置文本输入框的属性
    //2.1设置文本输入框的frame
    myTextField.frame = CGRectMake(100, 50, 200, 40);
    //2.2:设置文本输入框的边框样式
    myTextField.borderStyle = UITextBorderStyleRoundedRect;
    //2.3:设置文本输入框的占位文字
    myTextField.placeholder = @"占位文字";
   
    NSMutableAttributedString *placeHolder = [[NSMutableAttributedString alloc]initWithString:@"占位文字"];
    [placeHolder setAttributes:@{NSForegroundColorAttributeName:[UIColor greenColor]} range:NSMakeRange(0, 1)];
    [placeHolder setAttributes:@{NSForegroundColorAttributeName:[UIColor redColor]} range:NSMakeRange(1, 1)];
    [placeHolder setAttributes:@{NSForegroundColorAttributeName:[UIColor blueColor]} range:NSMakeRange(2, 1)];
    myTextField.attributedPlaceholder = placeHolder;
   
    //3:将文本输入框添加到view中去
    [self.view addSubview:myTextField];
}
@end

修改光标的颜色就是修改UITextField的tintColor

iOS开发中设置UITextField的占位文字的颜色,和光标的颜色的更多相关文章

  1. IOS开发中设置控件内容对齐方式时容易混淆的几个属性

    IOS开发中四个容易混淆的属性: 1. textAligment : 文字的水平方向的对齐方式 1> 取值 NSTextAlignmentLeft      = 0,    // 左对齐 NST ...

  2. iOS开发小技巧--自定义带有占位文字的TextView(两种方式)

    自定义控件注意或框架注意:自己暴露在外面的属性,一定要重写setter,保证外界与内部的交互性 一.方案一:通过drawRect:方法将文字画到textView中,监听文字改变用的是通知中心(代理也可 ...

  3. IOS开发中设置导航栏主题

    /** * 系统在第一次使用这个类的时候调用(1个类只会调用一次) */ + (void)initialize { // 设置导航栏主题 UINavigationBar *navBar = [UINa ...

  4. 怎样在ios开发中设置tableview的cell颜色

    //方法一: cell .contentView .backgroundColor = [ UIColor redColor ]; //方法二: UITableViewCell *cell = [ta ...

  5. iOS开发UI篇—iOS开发中三种简单的动画设置

    iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ...

  6. ios开发中全局变量设置和调用方法

    ios开发中,全局变量设置和调用方法如下:在AppDelegate.h文件中设置全局变量:@interface ***AppDelegate{NSString *myName;}@property ( ...

  7. 【swift,oc】ios开发中巧用自动布局设置自定义cell的高度

    ios开发中,遇到自定义高度不定的cell的时候,我们通常的做法是抽取一个frame类,在frame类中预算好高度,再返回. 但是苹果出来自动布局之后...春天来了!!来看看怎么巧用自动布局设置自定义 ...

  8. iOS不得姐项目--登录模块的布局,设置文本框占位文字颜色,自定义内部控件竖直排列的按钮

    一.登录模块的布局 将一整部分切割成若干部分来完成,如图分成了三部分来完成 设置顶部状态栏为白色的方法 二.设置文本框占位文字颜色 <1>方法一与方法二实现原理是同一种,都是通过设置pla ...

  9. iOS开发中你是否遇到这些经验问题

    前言 小伙伴们在开发中难免会遇到问题, 你是如何解决问题的?不妨也分享给大家!如果此文章其中的任何一条问题对大家有帮助,那么它的存在是有意义的! 反正不管怎样遇到问题就要去解决问题, 在解决问题的同时 ...

随机推荐

  1. python爬虫beta版之抓取知乎单页面回答(low 逼版)

    闲着无聊,逛知乎.发现想找点有意思的回答也不容易,就想说要不写个爬虫帮我把点赞数最多的给我搞下来方便阅读,也许还能做做数据分析(意淫中--) 鉴于之前用python写爬虫,帮运营人员抓取过京东的商品品 ...

  2. 查找Maven JAR坐标

    http://mvnrepository.com/ http://search.maven.org/

  3. jdk(多版本)安装注意!

    ♣安装jdk和jre ♣jdk配置环境变量和测试 ♣安装多版本jdk和切换 ♣jdk下的jre和第二次安装的jre的区别 注意点: 1.jdk版本需要是64位 2.安装JDK 选择安装目录 安装过程中 ...

  4. 如何计算合适的InnoDB的(innodb_log_file_size)日志文件大小

    在mysql工具中如phpmyadmin中执行show engine innodb status;注意观察Log sequence number 60秒后再次执行 获取Log sequence num ...

  5. Python学习笔记 for windows

    学习来源 http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001374738136 ...

  6. grep 命令详解

    [root@www ~]# grep [-acinv] [--color=auto] '搜寻字符串' filename 选项与参数: -a :将 binary 文件以 text 文件的方式搜寻数据 - ...

  7. gulp任务

    项目使用的gulp自动化任务 //定义输出文件夹名称 var distFolderH5 = "distH5"; var distFolderMofang = "distM ...

  8. 【转载】JMeter学习(三十六)发送HTTPS请求

    Jmeter一般来说是压力测试的利器,最近想尝试jmeter和BeanShell进行接口测试.由于在云阅读接口测试的过程中需要进行登录操作,而登录请求是HTTPS协议.这就需要对jmeter进行设置. ...

  9. RabbitMQ学习之集群部署

    我们先搭建一个普通集群模式,在这个模式基础上再配置镜像模式实现高可用,Rabbit集群前增加一个反向代理,生产者.消费者通过反向代理访问RabbitMQ集群. 架构图如下: 设计架构可以如下:在一个集 ...

  10. 用python实现计算1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))类似的公式计算

    作业需求: 开发一个简单的python计算器 1.实现加减乘除及拓号优先级解析 2.用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 ...