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

  1. #import <UIKit/UIKit.h>
  2.  
  3. @interface CustomTextView : UITextView
  4. @property(nonatomic,strong)NSString *placeholder;
  5. @end
  1. #import "CustomTextView.h"
  2.  
  3. @interface CustomTextView ()
  4. @property(nonatomic,strong)UILabel *placeLab;
  5. @end
  6.  
  7. @implementation CustomTextView
  8.  
  9. -(instancetype)initWithFrame:(CGRect)frame{
  10. self = [super initWithFrame:frame];
  11. if(self){
  12.  
  13. self.placeLab = [UILabel new];
  14. self.placeLab.textColor = [ImageService colorWithHexString:GRAY_COLOR];
  15. [self addSubview:self.placeLab];
  16. self.placeLab.textAlignment = NSTextAlignmentRight;
  17. [self.placeLab mas_makeConstraints:^(MASConstraintMaker *make) {
  18. make.top.left.offset(5);
  19. make.width.equalTo(self.mas_width).offset(-10);
  20. }];
  21. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(beginChange) name:UITextViewTextDidBeginEditingNotification object:self];
  22. [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(didChange) name:UITextViewTextDidChangeNotification object:self];
  23.  
  24. }
  25. return self;
  26. }
  27. -(void)setFont:(UIFont *)font {
  28. [super setFont:font];
  29. self.placeLab.font = font;
  30. }
  31. -(void)setTextAlignment:(NSTextAlignment)textAlignment{
  32. [super setTextAlignment:textAlignment];
  33. self.placeLab.textAlignment = textAlignment;
  34. }
  35.  
  36. -(void)setPlaceholder:(NSString *)placeholder{
  37. _placeholder = placeholder;
  38. self.placeLab.text = placeholder;
  39. }
  40.  
  41. -(void)beginChange{
  42. if([self.text isEqualToString:@""]){
  43. self.placeLab.hidden = NO;
  44. }else{
  45. self.placeLab.hidden = YES;
  46. }
  47. }
  48. -(void)didChange{
  49. if([self.text isEqualToString:@""]){
  50. self.placeLab.hidden = NO;
  51. }else{
  52. self.placeLab.hidden = YES;
  53. }
  54. }
  55. -(void)setText:(NSString *)text{
  56. [super setText:text];
  57. [self beginChange];
  58. }
  59.  
  60. @end
  1. -(void)dealloc{
  2. [[NSNotificationCenter defaultCenter] removeObserver:self name:UITextViewTextDidBeginEditingNotification object:self];
  3. [[NSNotificationCenter defaultCenter] removeObserver:self name:UITextViewTextDidChangeNotification object:self];
  4. }

UITextView设置placeholder的更多相关文章

  1. UITextView实现placeHolder方法汇总

    UITextField中有一个placeholder属性,可以设置UITextField的占位文字,起到提示用户的作用.可是UITextView就没那么幸运了,apple没有给UITextView提供 ...

  2. iOS TextView输入长度限制 设置placeholder

    textView在使用中通常会有2个功能是最常用的 设置placeholder 限制输入长度 TYLimitedTextView刚好是为了解决这个2个问题而诞生的,下面讲解TYLimitedTextV ...

  3. 教大家怎样给UITextView加入placeholder扩展

    怎样扩展UITextView以追加placeholder功能呢? 我们的需求是:追加placeholder功能 方案讨论: 通过继承UITextView的方式 通过扩展UITextView的方式 分析 ...

  4. iOS - UITextView实现placeHolder占位文字

      iOS之UITextView实现placeHolder占位文字的N种方法 前言 iOS开发中,UITextField和UITextView是最常用的文本接受类和文本展示类的控件.UITextFie ...

  5. UITextView 实现placeholder的方法

    本文转载至 http://www.cnblogs.com/easonoutlook/archive/2012/12/28/2837665.html 在UITextField中自带placeholder ...

  6. UITextView实现PlaceHolder的方式

    实现UITextView实现PlaceHolder的方式的方式有两种,这两种方法的核心就是通过通知来添加和去除PlaceHolder:下面来介绍两种方法:个人比较喜欢第一种,看起来更加合理. 方法1: ...

  7. 【代码笔记】iOS-UITextField设置placeholder颜色

    一,效果图. 二,工程图. 三,代码. RootViewController.h #import <UIKit/UIKit.h> @interface RootViewController ...

  8. 设置placeholder字体颜色

    /*设置placeholder字体颜色*/::-webkit-input-placeholder{ color: #FFF;}:-ms-input-placeholder{ color: #FFF;} ...

  9. UITextfield设置Placeholder颜色 控件 内边距、自适应高度

    //创建UITextField对象 UITextField * tf=[[UITextField alloc]init];    //设置Placeholder颜色 [text setAttribut ...

随机推荐

  1. 15适配器模式Adapter

    一.什么是适配器模式 Adapter模式也叫适配器模式,是构造型模式之一 ,通过Adapter模式可以改变已有类(或外部类)的接 口形式. 二.适配器模式应用场景 在大规模的系统开发过程中,我们常常碰 ...

  2. 使用命令行模式启动VMWare虚拟机

    工作中使用到在centos中安装vmware Workstation部署虚拟机,以前都是使用图形界面启动虚拟机,由此要调整VNC的分辨率大小,重启VNC Server后所有虚拟机都关闭了.事后分析可能 ...

  3. trace-cmd使用方法

    使用trace-cmd有的时候没有来得及使用ctrl+c, 导致出现多个trace.dat.cpu*, 可以使用下面的办法来手动合并trace.dat If a crash happened on a ...

  4. ios开发之--关于UIView的autoresizingMask属性的研究

    在 UIView 中有一个autoresizingMask的属性,它对应的是一个枚举的值(如下),属性的意思就是自动调整子控件与父控件中间的位置,宽高. enum { UIViewAutoresizi ...

  5. kubernetes 创建nginx 容器

    参考:http://blog.csdn.net/qq1010885678/article/details/48832067 一个简单的nginx服务器 先决条件:你需要拥有的是一个部署完毕并可以正常运 ...

  6. UITableView 显示在statusbar 下面

    IOS 6 升到 IOS7 之后出现的状况 新建一个工程,删除默认的ViewController,拖拽一个TableViewController到storyboard. 即使没有勾选 "Ex ...

  7. G - 看病要排队

    看病要排队这个是地球人都知道的常识. 不过经过细心的0068的观察,他发现了医院里排队还是有讲究的.0068所去的医院有三个医生(汗,这么少)同时看病.而看病的人病情有轻重,所以不能根据简单的先来先服 ...

  8. linux_check

    linux_check echo "********CPU****************" echo 总核数 = 物理CPU个数 X 每颗物理CPU的核数 echo " ...

  9. WPF datagrid 获取行或单格为NULL 问题

    datagrid  属性 EnableRowVirtualization 设置为 false 解决...不要问我为什么. 害死我了

  10. 解决webstorm拉取Vue项目时卡顿,及内存爆满问题

    最近在拉取Vue项目时总是会出现webstorm内存瞬间爆满,导致webstorm卡死,而且,有时在下载完node_modues后webstorm一直处于updating中,为此在网上找了很多方法结果 ...