textview 和 textfield 不同,系统并没有自带占位字符,一种方法当然可以重写系统方法,但是可以采用一个假的方法来实现这个效果.还有计数功能哟!
1.首先创建 textview 注意: 要签订代理,设定代理人.记得把控件加在视图上.
- (UITextView *)remarkTextView {
if (_remarkTextView == nil) {
_remarkTextView = [[UITextView alloc] initWithFrame:CGRectMake(15, 15, SCREEN_WIDTH - 30, 100)];
_remarkTextView.text = @" 请输入您的需求...";
_remarkTextView.textColor = [UIColor grayColor];
_remarkTextView.font = [UIFont systemFontOfSize:15];
_remarkTextView.layer.borderWidth = 0.5f;
_remarkTextView.layer.cornerRadius = 4.0f;
_remarkTextView.delegate = self;
}
return _remarkTextView;
}
- (UILabel *)numLabel {
if (_numLabel == nil) {
_numLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 120 , SCREEN_WIDTH - 10, 20)];
_numLabel.textAlignment = NSTextAlignmentRight;
_numLabel.text = @"0/200";
_numLabel.textColor = [UIColor grayColor];
_numLabel.font = [UIFont systemFontOfSize:14];
}
return _numLabel;
}
#pragma mark textview 代理
- (void)textViewDidChange:(UITextView *)textView {
if (self.remarkTextView.text.length > 200) {
NSString *subString = [self.remarkTextView.text substringToIndex:200];
self.remarkTextView.text = subString;
NSLog(@"限制输入200字");
}
self.remarkTextView.textColor = [UIColor blackColor];
self.numLabel.text = [NSString stringWithFormat:@"%ld/200",(unsigned long)textView.text.length];
}
- (void)textViewDidBeginEditing:(UITextView *)textView {
if ([textView.text isEqualToString:@" 请输入您的需求..."]) {
textView.text = @"";
}
}
- (void)textViewDidEndEditing:(UITextView *)textView {
if (textView.text.length < 1) {
textView.text = @" 请输入您的需求...";
textView.textColor = [UIColor grayColor];
}
}