iOS开发中设置UITextField的占位文字的颜色,和光标的颜色
在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的占位文字的颜色,和光标的颜色的更多相关文章
- IOS开发中设置控件内容对齐方式时容易混淆的几个属性
IOS开发中四个容易混淆的属性: 1. textAligment : 文字的水平方向的对齐方式 1> 取值 NSTextAlignmentLeft = 0, // 左对齐 NST ...
- iOS开发小技巧--自定义带有占位文字的TextView(两种方式)
自定义控件注意或框架注意:自己暴露在外面的属性,一定要重写setter,保证外界与内部的交互性 一.方案一:通过drawRect:方法将文字画到textView中,监听文字改变用的是通知中心(代理也可 ...
- IOS开发中设置导航栏主题
/** * 系统在第一次使用这个类的时候调用(1个类只会调用一次) */ + (void)initialize { // 设置导航栏主题 UINavigationBar *navBar = [UINa ...
- 怎样在ios开发中设置tableview的cell颜色
//方法一: cell .contentView .backgroundColor = [ UIColor redColor ]; //方法二: UITableViewCell *cell = [ta ...
- iOS开发UI篇—iOS开发中三种简单的动画设置
iOS开发UI篇—iOS开发中三种简单的动画设置 [在ios开发中,动画是廉价的] 一.首尾式动画 代码示例: // beginAnimations表示此后的代码要“参与到”动画中 [UIView b ...
- ios开发中全局变量设置和调用方法
ios开发中,全局变量设置和调用方法如下:在AppDelegate.h文件中设置全局变量:@interface ***AppDelegate{NSString *myName;}@property ( ...
- 【swift,oc】ios开发中巧用自动布局设置自定义cell的高度
ios开发中,遇到自定义高度不定的cell的时候,我们通常的做法是抽取一个frame类,在frame类中预算好高度,再返回. 但是苹果出来自动布局之后...春天来了!!来看看怎么巧用自动布局设置自定义 ...
- iOS不得姐项目--登录模块的布局,设置文本框占位文字颜色,自定义内部控件竖直排列的按钮
一.登录模块的布局 将一整部分切割成若干部分来完成,如图分成了三部分来完成 设置顶部状态栏为白色的方法 二.设置文本框占位文字颜色 <1>方法一与方法二实现原理是同一种,都是通过设置pla ...
- iOS开发中你是否遇到这些经验问题
前言 小伙伴们在开发中难免会遇到问题, 你是如何解决问题的?不妨也分享给大家!如果此文章其中的任何一条问题对大家有帮助,那么它的存在是有意义的! 反正不管怎样遇到问题就要去解决问题, 在解决问题的同时 ...
随机推荐
- vim操作
2.vi的基本操作 a) 进入vi 在系统提示符号输入vi及文件名称后,就进入vi全屏幕编辑画面: $ vi myfile 不过有一点要特别注意,就是您进入vi之后,是处于「命令行模式(comm ...
- 开发者所需要知道的 iOS 10 SDK 新特性
转自:https://onevcat.com/2016/06/ios-10-sdk/ 写的很好啊.哈哈哈 总览 距离 iPhone 横空出世已经过去了 9 个年头,iOS 的版本号也跨入了两位数.在我 ...
- https://blog.helong.info/blog/2015/03/13/jump_consistent_hash/
转载请说明出处:http://blog.csdn.net/cywosp/article/details/23397179 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT) ...
- cloudera learning1:cloudera简介及安装
cloudera分为两个部分:CDH和CM.CDH是Cloudera Distribution Hadoop的简称,顾名思义,就是cloudera公司发布的Hadoop版本,封装了Apache Had ...
- LeetCode Island Perimeter
原题链接在这里:https://leetcode.com/problems/island-perimeter/ 题目: You are given a map in form of a two-dim ...
- 【转载】JMeter学习(三十六)发送HTTPS请求
Jmeter一般来说是压力测试的利器,最近想尝试jmeter和BeanShell进行接口测试.由于在云阅读接口测试的过程中需要进行登录操作,而登录请求是HTTPS协议.这就需要对jmeter进行设置. ...
- sed 技巧
八.流编辑器sed sed ':a;N;$!ba;s/0.01/0.0001/g' file:a 创建一个labelaN 将下一行读入到模式空间$! 如果不是最后一行,ba跳转到label a处s/0 ...
- gitlab 安装
GitLab的安装方式 GitLab的两种安装方法: 编译安装 优点:可定制性强.数据库既可以选择MySQL,也可以选择PostgreSQL;服务器既可以选择Apache,也可以选择Nginx. 缺点 ...
- [Android Tips] 19. Android Studio Plugins
Code Generation GsonFormat json 字符串生成实体类 https://github.com/zzz40500/GsonFormat Android Parcelable C ...
- iOS 版 MWeb 发布到自建 Wordpress 和 Metaweblog API 使用指南
MWeb 的发布服务的使用方法是先增加发布服务,再使用.在 iOS 中,要增加发布服务,可以在首页中,点左上角的 "设置" 按钮,进入设置界面,并滑动到底部,就会看到增加发布服务的 ...