由于最近有用到输入框,刚开始考虑的是UITextField,因为它在没有输入的时候可以有提示的Placeholder更能,很人性化,但UITextField只能单行输入,不能跳行,对于一些强迫症的亲来说,很别捏!所以我就想用UITextView,并找出Placeholder的类似方法。我的思路是使用2个UITextView来模拟出UITextField的PlaceHolder效果,一个背景为透明的TextView放在最上面,另一个责作为PlaceHolder的TextView放在最底层。它们之间通过UITextViewDelegate中的-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 方法来动态控制。具体代码如下:

 1 -(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
2 if(![text isEqualToString:@""])
3 {
4 [_backgroundTextView setHidden:YES];
5 }
6 if([text isEqualToString:@""]&&range.length==1&&range.location==0){
7 [_backgroundTextView setHidden:NO];
8 }
9 if ([text isEqualToString:@"\n"]) {
10 [textView resignFirstResponder];
11 return NO;
12 }
13 return YES;
14 }

UITextView模拟UITextField 设置Placeholder属性 --董鑫的更多相关文章

  1. 用UITextView模拟UITextField的placeHolder

    用UITextView模拟UITextField的placeHolder 效果: 源码: // // ViewController.m // TextView // // Created by You ...

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

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

  3. iOS UITextField设置placeholder颜色

    设置UITextField的placeholder颜色 UIColor *color = [UIColor blackColor]; textField.attributedPlaceholder = ...

  4. iOS 修改UITextField的placeholder属性的字体颜色(修改UITextField占位符字体的颜色)

    只要把原来的placeholder属性改为attributedPlaceholder属性即可 具体代码如下图:

  5. UITextView和UITextField的placeholder,键盘隐藏,键盘换行变完成字样

    本文转载至 http://blog.csdn.net/hengshujiyi/article/details/9086093- (void)initFeedBackViews { //设置页面的背景颜 ...

  6. iOS学习-UITextField设置placeholder的颜色

    UITextField *text = [[UITextField alloc] initWithFrame:CGRectMake(, , , )]; text.borderStyle = UITex ...

  7. 让div支持placeholder属性/模拟输入框的placeholder属性

    实现方式:css div:empty:before{ content: attr(placeholder); color:#bbb;}div:focus:before{ content:none; }

  8. UITextField 设置 placeholder 的字体颜色方法

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica; color: #ff2608 } [_textField setValu ...

  9. <textarea></textarea>标签的placeholder属性不生效问题

    <textarea></textarea>标签的placeholder属性不生效问题   1.在用到<textarea></textarea>标签时,设 ...

随机推荐

  1. 编写Java程序,定义一个类似于ArrayList集合类

    返回本章节 返回作业目录 需求说明: 设计一个类似于ArrayList的集合类ListArray. ListArray类模拟实现动态数组,在该类定义一个方法用于实现元素的添加功能,以及用于获取List ...

  2. Unity——ShaderLab实现玻璃和镜子效果

    在这一篇中会实现会介绍折射和反射,以及菲尼尔反射:并且实现镜子和玻璃效果: 这里和之前不同的地方在于取样的是一张CubeMap: demo里的cubemap使用的一样,相机所在位置拍出来的周围环境图: ...

  3. MySQL主从复制作用和配置

    一.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重 ...

  4. 设置Linux的一些文本输出方式

    更新一下yum咯 yum install -y epel-release 火车 sudo yum install sl $ sl 放火 sudo yum install libaa-bin 小老鼠 s ...

  5. PowerShell 【按任意键继续】

    1 function Pause(){ 2 [System.Console]::Write('按任意键继续...') 3 [void][System.Console]::ReadKey(1) 4 } ...

  6. linux .gz文件 压缩与解压缩命令

    1. 压缩文件 gzip 源文件 如压缩 b.txt 使用命令 gzip b.txt 注意 压缩为 .gz 文件 源文件会消失 如果想保留源文件 使用命令 gzip -c 源文件 > 压缩文件 ...

  7. 为什么char类型输入遇空格会结束,int类型必须要空格才能输出

    char类型与int类型输入时的区别: 在C语言的规则中,规定了scanf函数在接收字符串时--遇到空格或回车就认为前面的输入已经完成且有效! 而对于int类型:表示整数,输入时需要用空格隔开,以确认 ...

  8. day2 数组字符串逆序存放正序对接调试

    这个问题仔细想了想,是s,t,s[],t[],重定义了,导致输入的是s,t这个定义变量,与传参传的是指针变量就不匹配了. 如果加上对s,t的地址,让传参的形式想匹配,还是报错,这块也没有弄懂,初步觉的 ...

  9. 【刷题-LeetCode】190 Reverse Bits

    Reverse Bits Reverse bits of a given 32 bits unsigned integer. Example 1: Input: 0000001010010100000 ...

  10. 走进Task(1):什么是Task

    目录 前言 从表象讲起 Task 从何而来 Task 常见用法 Task 的分类 按是否包含 Result 分,也就是是否是泛型 Task 按得到 Task 的方式,可以分为 对 Task 进行分解 ...