zoukankan      html  css  js  c++  java
  • UITextView设置placeholder

    下面是我的代码,可以直接拿来用

    #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];
    }
    
  • 相关阅读:
    操作系统进程通信
    操作系统进程调度
    java中的变量
    java移位运算符
    String, StringBuffer, StringBuilder 的区别
    多线程相关问题汇总
    java内存管理与GC机制(二)
    java内存管理与GC机制(一)
    进程与线程的理解
    Liferay7使用maven引入第三方jar包
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/9989875.html
Copyright © 2011-2022 走看看