由于最近有用到输入框,刚开始考虑的是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 }
时间: 2024-10-24 11:15:08