UITextView模拟UITextField 设置Placeholder属性 --董鑫

  由于最近有用到输入框,刚开始考虑的是UITextField,因为它在没有输入的时候可以有提示的Placeholder更能,很人性化,但UITextField只能单行输入,不能跳行,对于一些强迫症的亲来说,很别捏!所以我就想用UITextView,并找出Placeholder的类似方法。我的思路是使用2个UITextView来模拟出UITextField的PlaceHolder效果,一个背景为透明的TextView放在最上面,另一个责作为PlaceHolder的TextView放在最底层。它们之间通过UITextViewDelegate中的-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 方法来动态控制。具体代码如下:

 1 -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
 2     if(![text isEqualToString:@""])
 3     {
 4         [_backgroundTextView setHidden:YES];
 5     }
 6     if([text isEqualToString:@""]&&range.length==1&&range.location==0){
 7         [_backgroundTextView setHidden:NO];
 8     }
 9     if ([text isEqualToString:@"
"]) {
10         [textView resignFirstResponder];
11         return NO;
12     }
13     return YES;
14 }
原文地址:https://www.cnblogs.com/sixindev/p/4522730.html