RunTime运行时在iOS中的应用之UITextField占位符placeholder
RunTime运行时机制
runtime是一套比较底层的纯C语言API, 属于1个C语言库, 包含了很多底层的C语言API。
在我们平时编写的Objective-C代码中, 程序运行过程时, 其实最终都是转成了runtime的C语言代码, runtime算是OC的幕后工作者,下面介绍一下用runtime遍历出UITextField的一些隐藏属性,查出后再通过KVC来进行修改这个属性,其他的控件都可使用此类似的方法。
//第一次用到这类的时候就会调用的只会调用一次方法 ,这个方法查的时候用一下 ,用于遍历出UITextField的一些隐藏属性,以后不用这个方法
+ (void)initialize{
unsigned int count = 0;
// 拷贝出所有的成员变量列表 ivars是指向这个数组的指针也是指向首个元素的指针
Ivar *ivars = class_copyIvarList([UITextField class], &count);
for (int i = 0; i < count; ++i) {
//数组名其实就是指向数组首元素的指针 如果指针是指向数组的首元素,就可把指针当数组一样用
Ivar t = ivars[i];
//打印成员变量名 在控制台打印输出查找到属性 _placeholderLabel
NSLog(@"%s",ivar_getName(t));
}
// 释放指针变量 ivars 是拷贝过的所以用完要释放
free(ivars);
}
- (instancetype)initWithFrame:(CGRect)frame{
if(self = [super initWithFrame:frame]){
[self setupUI];
}
return self;
}
- (void)awakeFromNib{
[super awakeFromNib];
[self setupUI];
}
- (void)setupUI{
self.textColor = [UIColor whiteColor];
//tintColor 可设置光标的颜色等
self.tintColor = self.textColor;
//一加载这个TextField时让里面的占位字符变灰色 就让文本输入框失去焦点z(因为在重写失去焦点时设置了文字变灰色)
[self resignFirstResponder];
}
// 当文本输入框成为第一响应者就会调用
- (BOOL)becomeFirstResponder{
[self setValue:self.textColor forKeyPath:@"_placeholderLabel.textColor"];
return [super becomeFirstResponder];
}
// 当文本输入框失去焦点的时个会调用的方法
- (BOOL)resignFirstResponder{
//通过 KVC 访问 _placeholderLabel.textColor 属性 设置颜色
[self setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"];
return [super resignFirstResponder];
}
转载于:https://www.cnblogs.com/chenweb/p/7096802.html
RunTime运行时在iOS中的应用之UITextField占位符placeholder相关推荐
- iOS 进阶 - RUNTIME 运行时
2019独角兽企业重金招聘Python工程师标准>>> 什么是 RUNTIME ? 1.Runtime就是运行时,OC就是运行机制也就是在运行的时候的一些机制.其主要有消息机制. 2 ...
- java能调用python吗_如何使用运行时在Java中调用python程序 - java
我想用来自Java的参数调用python程序.但是我的输出是空白.代码在这里. Python代码在这里: import sys print(sys.argv[1]) Java代码在这里: public ...
- android textview 绝对位置,android – 在运行时在RemoteView中设置TextView的位置
亲爱的,我试图在appwidget中设置TextView的位置. 基本上,TextView可以直接访问属性: myRemoteView.setTextColor(R.id.myTextView,Col ...
- iOS运行时Runtime浅析
运行时是iOS中一个很重要的概念,iOS运行过程中都会被转化为runtime的C代码执行.例如[target doSomething];会被转化成objc)msgSend(target,@select ...
- UITextView中的占位符
我的应用程序使用UITextView . 现在,我希望UITextView具有类似于可以为UITextField设置的占位符. 这个怎么做? #1楼 简单的方法,只需使用以下UITextViewDel ...
- SQL算法中的变量使用占位符动态赋值
需求: 1.每张表的SQL算法配置到数据库的配置表中 2.SQL算法中的条件统一使用占位符填充 3.当执行sql时需要将查询出来的SQL算法中的占位符动态赋值 一.真实案例还原 这里拿表进行演示 1. ...
- 深度学习实战(4)如何向BERT词汇表中添加token,新增特殊占位符
向BERT词汇表中添加token 问题表述 添加特殊占位符号 add_special_tokens 其他占位符接口 报错与解决方案 问题表述 在实际应用或者学术科研过程中,我们常常需要添加一些特殊的占 ...
- C语言中的各种占位符
C语言占位符 占位符这个名词想必都不陌生,C语言中的%d,%c就再熟悉不过了,那么C语言中究竟都有哪些占位符呢,又都表示什么含义呢? %d:整型 %ld:长整型 %o:八进制数形式整数 %u:十进制数 ...
- TensorFlow中张量,变量、常量、占位符概念
1.总结TensorFlow中的张量概念 张量:数据结构:多维数组 零阶张量表示标量(scalar),也就是一个数: 一阶张量为向量(vector),也就是一个数组: N阶张量可以理解为一个n维数组: ...
最新文章
- Netty(一) SpringBoot 整合长连接心跳机制
- Java中expecial,RxJava 学习笔记 (一)
- 点个外卖搞定「软中断」
- 【转】python中的对象拷贝
- 第一章:认识Redhat Linux
- 证明kruskal算法求解图的最小生成树具有贪心选择性质_将并查集应用在图论中的最小生成树算法——Kruskal...
- vue中v-for的使用
- 你对求生欲,一无所知!| 今日最佳
- 从oracle里面取直,45个非常有用的 Oracle 查询语句小结
- 【C语言】使用指针得到数组的最后一个数
- 中考计算机flash试题及答案,2015中考信息技术试题Flash操作题2-25(终)
- 【VMware vSAN 6.6】5.4.vSAN 配置提示:vSAN硬件服务器解决方案
- codejock(codejock chart类)
- 《道德经》和《圣经》中的“道”
- 推荐1位AI产品经理求职信息(企业方可要简历),新增3个JD(共计59个、AI PM可内推)...
- 华为云MVP周峥:气象预报是个技术活,大数据、超算、AI,缺一不可
- 企业数字化转型saas电商系统(已开源)
- MacBook Pro死机强制重启键
- 404 Not Found [IP: 91.189.91.39 80] 解决办法:换源,还是换源 !!
- java 取一个数的各个位数