UITextView实现类似UITextField中的placehoder效果

UITextField中的placehoder效果就是一个文本框的提示内容,但是UITextView是没有这个功能的,所以我们需要自己模拟,思路如下:

  1. 把textView中的内容设为自定义的placehoder
  2. 每当用户开始输入的时候判断textView中的内容是不是placehoder,如果是就把他清空,如果不是则不改变
  3. 每当用户输入完后判断textView中是否为空,如果是空的表示用户没有输入或已清空,则用placehoder填充,否则不做改变

具体实现:

  • 让当前控制器类实现UITextViewDelegate,并且设置自定义的placehoder。
@interface ContactUsViewController : UIViewController<UITextViewDelegate>
@property (weak, nonatomic) IBOutlet UITextView *textView;
@property(strong,nonatomic)NSString* placehoder;

@end
  • 设置textView中的初始值和代理
self.textView.delegate = self;
self.textView.text = self.placehoder;
  • 实现思路2
/**
 *  @author Elin
 *  *  textView开始输入时调用
 *  *  @param textView 被输入的UITextView
 */
-(void)textViewDidBeginEditing:(UITextView *)textView{
    //如果textView中的字符串为定义的placehoder,表示用户之前没有输入内容,则清楚textView
    if ([textView.text isEqualToString:self.placehoder]) {
        self.textView.text = @"";
    }
}
  • 实现思路3
/**
 *  @author Elin
 *
 *  textView结束输入的时候调用
 *
 *  @param textView 被输入的UITextView
 */
-(void)textViewDidEndEditing:(UITextView *)textView{
    //如果textView中的内容长度为0,则表示textView为空,用placehoder填充
    if (textView.text.length<1) {
        self.textView.text = self.placehoder;
    }
}

当然如果为了更加逼真,可以设置改变字体颜色,在此不再赘述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值