iOS输入框资料iOS 开发

Runtime修改UITextField的placeholder

2016-05-14  本文已影响71人  Mr丶炎
Snip20160514_2.png

这里的输入框里面的placeholder是高亮显示的(白色), 修改placeholder有几种方法,个人觉得Runtime更加简单

Runtime

 *  运行时(Runtime)
 *  苹果官方一套C语言库
 *  能够做很多底层操作(比如隐藏的一些成员变量/成员方法)
+ (void)initialize {
    
    unsigned int count = 0;
    
    // 拷贝出所有的成员变量列表
    Ivar *ivars = class_copyIvarList([UITextField class], &count);
    
    for (int i = 0; i < count; i++) {
        
        // 取出成员变量
        Ivar ivar = *(ivars + i);
        
        // 打印成员变量
        BSLog(@"%s", ivar_getName(ivar));
    }
    
    // 释放
    free(ivars);
   
}

取出成员变量, 我们看到有一个_placeholderLabel,这个属性明显就是可以修改字体颜色

Snip20160514_3.png

我们可以重写这两个方法,监听文本框聚焦


- (void)awakeFromNib {
    
    // 设置光标颜色和文字颜色一致,好想不起作用
    self.tintColor = self.textColor;
    
    // 不成为第一响应者
    [self resignFirstResponder];
}

/**
 *  当前文本框聚焦时就会调用(点击时调用)
 */
- (BOOL)becomeFirstResponder {
    
    [self setValue:self.textColor forKeyPath:@"_placeholderLabel.textColor"];
    return [super becomeFirstResponder];
}

/**
 *  当前文本框失去焦点时就会调用(没点)
 */
- (BOOL)resignFirstResponder {
    
    [self setValue:[UIColor grayColor] forKeyPath:@"_placeholderLabel.textColor"];
    return [super resignFirstResponder];
}
上一篇下一篇

猜你喜欢

热点阅读