博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
运用一下 Runtime 修改文本框占位符的颜色
阅读量:5290 次
发布时间:2019-06-14

本文共 1752 字,大约阅读时间需要 5 分钟。

/**     运行时 :runtime    可以访问隐藏的一些属性 **在这个代码中 修改 文本框占位符 的颜色   */+ (void)initialize{    [self getIvars];    [self getProperties];}//获取所有属性+ (void)getProperties{    unsigned int count = 0;        objc_property_t *properties = class_copyPropertyList([UITextField class], &count);    for (int i = 0; i < count; i++) {        objc_property_t property = properties[i];        NSLog(@"%s  <---->  %s",property_getName(property), property_getAttributes(property));    }    }//获取所有成员变量列表+ (void)getIvars{    unsigned int count = 0;    //拷贝出所有的成员变量列表  这是一个数组 可以访问隐藏的属性   Ivar *ivars = class_copyIvarList([UITextField class], &count);    for (int i = 0; i < count; i ++) {//        Ivar ivar = *(ivars + i);        Ivar ivar = ivars[i]; //等同上一句代码        NSLog(@"%s",ivar_getName(ivar));    }    //释放内存 因为带有 copy    free(ivars);}//视图加载出来时- (void)awakeFromNib{//    UILabel *placeHolderLabel = [self valueForKey:@"_placeholderLabel"];//    placeHolderLabel.textColor = [UIColor redColor];    //通过 kvc 赋值//    [self setValue:[UIColor orangeColor] forKeyPath:@"_placeholderLabel.textColor"];//设置光标颜色和文字颜色一致        self.tintColor = self.textColor;    [self resignFirstResponder];    }//文本框成为第一响应者 和放弃 时 设置文本框的 占位符的颜色 - (BOOL)becomeFirstResponder{    [self setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];    return [super becomeFirstResponder];}- (BOOL)resignFirstResponder{    [self setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];    return [super resignFirstResponder];}//外界可以通过访问这个属性 进行赋值- (void)setPlaceHolderColor:(UIColor *)placeHolderColor{    _placeHolderColor = placeHolderColor;    [self setValue:placeHolderColor forKeyPath:@"_placeholderLabel.textColor"];}

 

转载于:https://www.cnblogs.com/arenouba/p/5424412.html

你可能感兴趣的文章
漫谈 JVM —— 内存
查看>>
52.数组中重复的数字
查看>>
60.Median of Two Sorted Arrays(两个排序数组的中位数)
查看>>
(转)SVN命令详解
查看>>
BZOJ 2731: [HNOI2012]三角形覆盖问题
查看>>
selenium原理和尝试
查看>>
poj 3181 Dollar Dayz
查看>>
dijstra+输出路径总结
查看>>
android中怎么让 button组件居中显示
查看>>
httprunner -- 问题
查看>>
CF 305C ——Ivan and Powers of Two——————【数学】
查看>>
js script放在head和body里面的区别
查看>>
深入理解计算机系统(5.1)------优化程序性能
查看>>
对Git一点点小认识
查看>>
Objective C静态代码扫描和代码质量管理 OClint + SonarQube
查看>>
iPad弹出框
查看>>
Scrum实施日记 - QA很累
查看>>
AC日记——[中山市选2009]谁能赢呢? bzoj 2463
查看>>
python并发编程之协程
查看>>
维吉尼亚密码
查看>>