下面是我的代码,可以直接拿来用
#import <UIKit/UIKit.h> @interface CustomTextView : UITextView @property(nonatomic,strong)NSString *placeholder; @end
#import "CustomTextView.h" @interface CustomTextView () @property(nonatomic,strong)UILabel *placeLab; @end @implementation CustomTextView -(instancetype)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if(self){ self.placeLab = [UILabel new]; self.placeLab.textColor = [ImageService colorWithHexString:GRAY_COLOR]; [self addSubview:self.placeLab]; self.placeLab.textAlignment = NSTextAlignmentRight; [self.placeLab mas_makeConstraints:^(MASConstraintMaker *make) { make.top.left.offset(5); make.width.equalTo(self.mas_width).offset(-10); }]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(beginChange) name:UITextViewTextDidBeginEditingNotification object:self]; [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(didChange) name:UITextViewTextDidChangeNotification object:self]; } return self; } -(void)setFont:(UIFont *)font { [super setFont:font]; self.placeLab.font = font; } -(void)setTextAlignment:(NSTextAlignment)textAlignment{ [super setTextAlignment:textAlignment]; self.placeLab.textAlignment = textAlignment; } -(void)setPlaceholder:(NSString *)placeholder{ _placeholder = placeholder; self.placeLab.text = placeholder; } -(void)beginChange{ if([self.text isEqualToString:@""]){ self.placeLab.hidden = NO; }else{ self.placeLab.hidden = YES; } } -(void)didChange{ if([self.text isEqualToString:@""]){ self.placeLab.hidden = NO; }else{ self.placeLab.hidden = YES; } } -(void)setText:(NSString *)text{ [super setText:text]; [self beginChange]; } @end
-(void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self name:UITextViewTextDidBeginEditingNotification object:self]; [[NSNotificationCenter defaultCenter] removeObserver:self name:UITextViewTextDidChangeNotification object:self]; }