文本编辑框光标颜色和占位文字颜色自定义

1.自定义一个自己的UITextField类,在类中实现如下代码:

方法一:利用UITextField属性attributedPlaceholder直接设置

-(void)awakeFromNib{

    [super awakeFromNib];
    //光标颜色
    self.tintColor = [UIColor whiteColor];
    //占位文字颜色
    [self addTarget:self action:@selector(startEditTextField) forControlEvents:UIControlEventEditingDidBegin];
    [self addTarget:self action:@selector(endEditTextField) forControlEvents:UIControlEventEditingDidEnd];

}

-(void)startEditTextField{

    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
    dict[NSForegroundColorAttributeName] = [UIColor whiteColor];

    self.attributedPlaceholder = [[NSAttributedString alloc] initWithString:self.placeholder attributes:dict];
}

-(void)endEditTextField{
    NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
    dict[NSForegroundColorAttributeName] = [UIColor grayColor];

    self.attributedPlaceholder = [[NSAttributedString alloc] initWithString:self.placeholder attributes:dict];
}

方法二:利用用KVC获取TextField系统属性设置

-(void)awakeFromNib{

    [super awakeFromNib];
    //光标颜色
    self.tintColor = [UIColor whiteColor];
    //占位文字颜色
    [self addTarget:self action:@selector(startEditTextField) forControlEvents:UIControlEventEditingDidBegin];
    [self addTarget:self action:@selector(endEditTextField) forControlEvents:UIControlEventEditingDidEnd];

}

-(void)startEditTextField{

    UILabel *placeholderLabel = [self valueForKey:@"placeholderLabel"];//方法实现:首先找有没有这样的get方法,没有则继续找placeholderLabel这个成员属性,还没有则接着找_placeholderLabel
    placeholderLabel.textColor = [UIColor whiteColor];

}

-(void)endEditTextField{

    UILabel *placeholderLabel = [self valueForKey:@"placeholderLabel"];
    placeholderLabel.textColor = [UIColor grayColor];
}
时间: 2024-10-11 23:04:19

文本编辑框光标颜色和占位文字颜色自定义的相关文章

百思不得姐第4天:文本框占位文字颜色

一:设置登录界面和注册界面的切换 #import "CQLoginViewController.h" #import "CQCustomTextField.h" @interface CQLoginViewController () @property (weak, nonatomic) IBOutlet NSLayoutConstraint *centerTopConstraints; @property (weak, nonatomic) IBOutlet UI

iOS不得姐项目--登录模块的布局,设置文本框占位文字颜色,自定义内部控件竖直排列的按钮

一.登录模块的布局 将一整部分切割成若干部分来完成,如图分成了三部分来完成 设置顶部状态栏为白色的方法 二.设置文本框占位文字颜色 <1>方法一与方法二实现原理是同一种,都是通过设置placeholder的NSAttributeString来设置文字属性 方法二效果图: <2>第三种方法是通过RunTime找到隐藏的可以设置placeholder颜色的属性,通过KVC来赋值.RunTime会单独拿出来讲 三.按钮自定义,重新排列子控件的排列位置

改变设置文本框占位文字和图片

如果我们想实现这种效果,点击相应的文本,占位文字显示高亮 ,而其他文本框非高亮 相应代码 #import <UIKit/UIKit.h> @interface XMGTextField : UITextField /** 颜色 */ @property(nonatomic,strong)UIColor *placeholderColor; @end #import "XMGTextField.h" #import <objc/runtime.h> static

修改状态栏的文字颜色和背景色

一.修改状态栏文字颜色 这里修改文字颜色分两种情况 (1)导航栏是隐藏状态 如果导航栏为隐藏状态 可以直接在控制器中重写如下方法 // 重写方法 状态栏白色 - (UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent; } 这样状态栏的文字就可以变成白色了 (2)导航栏不是隐藏状态 如果导航栏不是隐藏状态 会发现方法(1)没有作用了这时要采用第二种方法, 一共有两个步骤1 -> 设置info.p

iOS开发中设置UITextField的占位文字的颜色,和光标的颜色

在iOS开发中,对于很多初学者而言,很有可能碰到需要修改UITextField的占位文字的颜色,以及当UITextField成为第一响应者后光标的颜色,那么下面小编就介绍一下修改占位文字和光标的颜色.1:当你在使用Storyboard开发是,点击UITextField,在点击右上角的属性检测器,其实在这里面你是找不到有可以修改占位文字和光标颜色的属性的.2:那就进入UITextField的协议里面去查找,但是还是找不到,3:在进代理里面去查找,看看有没有通过代理方法,返回颜色并控制占位文字的方法

UITextField-修改占位文字和光标的颜色,大小

一.设置占位文字的颜色 方法一:利用富文本 /** 手机号输入框 */ @property (weak, nonatomic) IBOutlet UITextField *phoneTextField; - (void)viewDidLoad { [super viewDidLoad]; // 创建一个富文本对象 NSMutableDictionary *attributes = [NSMutableDictionary dictionary]; // 设置富文本对象的颜色 attributes

[BS-19]更改UITextField的placeholder文字颜色的5种方法

更改UITextField的placeholder文字颜色的5种方法 想要达到的目标是:一个页面上有多个UITextField,当用户聚焦某textField时,该文本框的placeholder的文字会灰色变为白色,当文本框失去焦点时,placeholder颜色从白色再变回灰色. 1.放置UILabel 最简单最笨的方法是在每个textField里放一个UILabel来充当placeholder,当该textField聚焦时,让placeholder的文字会灰色变为白色,失焦后从白色再变回灰色.

VC改变CListCtrl 表格中文字颜色,和背景颜色。

(1)首先需要自定义一个类,派生自CListCtrl.如下图: (2)然后在派生类的头文件中声明一个成员函数,如下图: (3)在源文件中实现该成员方法,如图: (4)在源文件中做消息映射,如图: 这时候,当CListCtrl控件在绘制的时候,就会有NM_CUSTOMDRAW消息被我们的函数截获. 我们就在实现函数中筛选出CListCtrl控件应该设置内容(文字颜色,文字背景颜色)的时机,对绘制的内容做相应的修改即可. // ColorListCtrl.cpp : implementation f

android listview 选中部分 文字颜色改变

需求,在listview中当光标在一个item中的时候这个item中的文字颜色会改变 代码: AudioOnDemandAdapter adapter = new AudioOnDemandAdapter(this, listview); 把listview传入到adapter中 在adapter中的getview方法 if(listview.getSelectedItemPosition() == position){ holder.tv_film_item.setTextSize(35);