// // GMPlaceholderTextContainer.m // Gengmei // // Created by wangyang on 16/1/5. // Copyright © 2016年 Wanmeichuangyi. All rights reserved. // #import "GMPlaceholderTextContainer.h" #import <Masonry/Masonry.h> //#import "NSString+GM.h" #import "GMFont.h" #import <UIColor+GMTheme.h> #import <Constant.h> @implementation GMPlaceholderTextContainer - (void)setup { [super setup]; _placeholderOrigin = CGPointMake(6, 7); _textView = [UITextView new]; _textView.font = [UIFont gmFont:15]; [self addSubview:_textView]; _placeholderLabel = [GMLabel labelWithTextColor: UIColor.disable fontSize:15]; _placeholderLabel.backgroundColor = [UIColor clearColor]; [self addSubview:_placeholderLabel]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textViewDidChange) name:UITextViewTextDidChangeNotification object:nil]; } - (void)updateConstraints{ [_textView mas_makeConstraints:^(MASConstraintMaker *make) { make.edges.insets(UIEdgeInsetsZero); }]; [_placeholderLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.top.equalTo(_textView.mas_top).offset(_placeholderOrigin.y); make.left.equalTo(_textView.mas_left).offset(_placeholderOrigin.x); }]; [super updateConstraints]; } - (void)dealloc{ [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void)textViewDidChange{ NSMutableCharacterSet *emptyStringSet = [[NSMutableCharacterSet alloc] init]; [emptyStringSet formUnionWithCharacterSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]]; [emptyStringSet formUnionWithCharacterSet: [NSCharacterSet characterSetWithCharactersInString: @" "]]; if ([_textView.text length] == 0) { _placeholderLabel.hidden = NO; } NSString* str = [_textView.text stringByTrimmingCharactersInSet:emptyStringSet]; _placeholderLabel.hidden = [str length] > 0; } #pragma mark - 重写 - (BOOL)becomeFirstResponder{ [_textView becomeFirstResponder]; return YES; } - (BOOL)resignFirstResponder{ [_textView resignFirstResponder]; return [super resignFirstResponder]; } #pragma mark - Setter、Getter - (NSString *)text{ return _textView.text; } - (void)setText:(NSString *)text { _textView.text = text; [self textViewDidChange]; } - (NSString *)placeholder { return _placeholderLabel.text; } - (void)setPlaceholder:(NSString *)placeholder { _placeholderLabel.text = placeholder; } @end