有时我们需要使用UITextView控件,但是UITextView没有提示用户的占位字符,所以我们需要设置一个占位字符。
第一步:定义一个占位字符串,并设置好串内容
/** 占位字符串 */
@property (nonatomic, strong) NSString *placeholderString;
在懒加载方法里设置好你想要的占位字符串的内容
第二步:懒加载实例化UITextView对象时,设置UITextView对象的text为占位字符串,并设置好textColor(设置为透明灰色最贴近系统的占位字符设置)和字号(按实际情况设置字号)
第三步:在UITextViewDelegate代理方法里根据情况重新设置text内容
#pragma mark- UITextViewDelegate代理方法
//MARK: 开始编辑
- (void)textViewDidBeginEditing:(UITextView *)textView {
// 开始编辑时,设置UITextView对象的text为空(但是这样如果用户编辑了第一次,想要在加一些东西时就会把上一次的内容删除,相当于不能续编辑)
// 如果想要续编辑功能,就要判断视图的text内容是不是占位字符,如果是,置空,如果不是就不置空
// 并重新设置text的颜色和字号(一般设置为黑色,字号根据实际需求设置就好)
// 事例代码
if ([self.questionTextView.text isEqualToString:self.placeholderString]) {
self.questionTextView.text = @"";
}
self.questionTextView.font = [UIFont systemFontOfSize:18.0f];
self.questionTextView.textColor = [UIColor blackColor];
}
//MARK: 结束编辑
- (void)textViewDidEndEditing:(UITextView *)textView {
// 结束编辑时,判断UITextView对象的text是否为空,如果是空,说明用户没有输入,那么就将UITextView对象的text设置为占位字符串,并将text的颜色和字号设置为占位字符串的需求样式
// 事例代码如下
if ([self.questionTextView.text isEqualToString:@""]) {
// 为输入框添加占位字符串
self.questionTextView.text = self.placeholderString;
self.questionTextView.textColor = [UIColor colorWithRed:192/255.f green:192/255.f blue:192/255.f alpha:0.9];// 设置透明灰色的占位字符更贴近系统的占位字符
self.questionTextView.font = [UIFont systemFontOfSize:15.0f];
}
}
经过上述三步,就完成了textView的占位字符串,但是要注意一下,如果要用textView对象的text内容时,要进行判断,如果text内容为占位字符说明用户没进行操作