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:@"\n"]) { 10 [textView resignFirstResponder]; 11 return NO; 12 } 13 return YES; 14 }
作者:SIBU iOS DEV
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.