iOS开发牛叉的demo程序员

自定义UITextField实现编辑输入框时里面文字颜改变

2017-05-08  本文已影响73人  NotFunGuy

简介

本文要实现的效果是当编辑TextField输入框的时候,里面的文字颜色和占位文字颜色不一样,达到一个提醒的效果。在默认情况下,UITextField里面的的文字在输入文字的时候颜色是不会改变的。这个时候可以通过runtime来实现效果。

效果图

运行时(runtime)

在动手之前先简单了解runtime的概念:

步骤

  1. 重写awakeFromNib,在里面用KVC设置站位文字颜色、
  2. 通过becomeFirstResponder和resignFirstResponder方法进行监听光标所在文本输入框,实现占位文字颜色和光标颜色改变

完整代码

- (void)awakeFromNib{
    
    [super awakeFromNib];
    // 修改占位文字颜色
    UILabel * palceholderLabel = [self valueForKeyPath:@"_placeholderLabel"];
    palceholderLabel.textColor = [UIColor grayColor];
    
    
    // 设置光标颜色和文字颜色一致
    self.tintColor = [UIColor whiteColor];

    // 不成为第一响应者
    [self resignFirstResponder];

}
/**
 * 当前文本框聚焦的时候就会调用
 */
- (BOOL)becomeFirstResponder{
    
    //修改占位文字颜色
    UILabel * palceholderLabel = [self valueForKeyPath:@"_placeholderLabel"];
    palceholderLabel.textColor = [UIColor whiteColor];
    
    return [super becomeFirstResponder];
}

/**
 * 当前文本框取消聚焦的时候调用
 */
- (BOOL)resignFirstResponder{
    
      //修改占位文字颜色
    UILabel * palceholderLabel = [self valueForKeyPath:@"_placeholderLabel"];
    palceholderLabel.textColor = [UIColor grayColor];
    
    return [super resignFirstResponder];
}
上一篇 下一篇

猜你喜欢

热点阅读