关于UITextField和UITextView的placeholder

1. 大家都知道UITextField支持设置placeholder, 并且可以改变placeholder字体大小和颜色, 参照代码:

/* 设置placeholder*/
[textField setPlaceholder:@"placeholder in textField"];

/* 改变placeholder的颜色 */
[textField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];  

/* 改变placeholder的字体大小 */
[textField setValue:[UIFont systemFontOfSize:20.f] forKeyPath:@"_placeholderLabel.font"];

2. UITextView是不支持placeholder, 不过没事, 我们可以手动添加一个label, 设置字体大小颜色就只需要操作label即可:

/* 添加UITextView */
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 320.f, 47.f)];
textView.delegate = self;        //
textView.backgroundColor = [UIColor clearColor];
[self addSubView:textView];

/* 添加placeholder Label */
UILabel *placeHolderLabel = [[UILabel alloc] initWithFrame:CGRectZero];
placeHolderLabel.textColor = [UIColor lightGrayColor];
placeHolderLabel.text = @"placeholder in textView";
[placeHolderLabel sizeToFit];
placeHolderLabel.frame = CGRectMake(0, 5.f, placeHolderLabel.frame.size.width, placeHolderLabel.frame.size.height);
[self addSubView:placeHolderLabel];

/* 监听textView发生变化, 无内容则显示placeholder */
- (void)textViewDidChange:(UITextView *)textView{
    if ([[textView.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] isEqualToString:@""]) {
        placeHolderLabel.text = @"placeholder in textView";
    }else{
        placeHolderLabel.text = @"";
    }
}
时间: 2024-08-26 17:39:55

关于UITextField和UITextView的placeholder的相关文章

UITextField 和 UITextView

UITextField 属性: 1.frame 坐标 2.borderStyle 边框样式 3.placeholder 提示文字 4.keyboardType 键盘样式(数字键盘,字母键盘等) 5.keyboardAppearance 键盘外观 6.secureTextEntry 密文输入 7.clearButtonMode 清除按钮模式 8.inputView 弹出视图(自定义view之类的) 9.leftView 左侧视图(还需要设置左视图模式) 10.leftViewMode 左侧视图模式

实现UITextView的placeholder

我们知道在iOS开发时,控件UITextField有个placeholder属性,UITextField和UITextView使用方法基本类似,有两个小区别:1.UITextField单行输入,而UITextView可以多行输入.2.UITextField有placeholder属性,而UITextView没有.至于两者的代理方法,原理基本差不多,只是方法名略有差异. 如何为UITextView添加一个placeholder功能呢,其实方法很简单,三步即可实现: 1.在创建textView的时候

IOS UITextView加上placeholder

UITextView上如何加上类似于UITextField的placeholder呢,其实在UITextView上加上一个UILabel,然后再实现 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text这个代理方法就可以了. 具体实现如下: - (BOOL)textView:(UITextView *)textView shou

自定义UITextView的placeholder(占位文字)

我们知道在iOS开发时,控件UITextField有个placeholder属性,UITextField和UITextView使用方法基本类似,有两个小区别:1.UITextField单行输入,而UITextView可以多行输入.2.UITextField有placeholder属性,而UITextView没有.至于两者的代理方法,原理基本差不多,只是方法名略有差异. 如何为UITextView添加一个placeholder功能呢,其实方法很简单,三步即可实现: 1.在创建textView的时候

UITextView实现placeHolder方法汇总

UITextField中有一个placeholder属性,可以设置UITextField的占位文字,起到提示用户的作用.可是UITextView就没那么幸运了,apple没有给UITextView提供一个类似于placeholder这样的属性来供开发者使用.下面我就把自己能够想到的和网友提供的方法汇总一下,让更多的开发者知道,原来有这么多方法可以实现UITextView的占位文字. 方法一: 1.把UITextView的text属性当成“placeholder”使用. 2.在开始编辑的代理方法里

IOS 之 UITextField与UITextView

文本视图(UITextView)与文本框(UITextField)相似,差别在于文本视图可显示一个可滚动和编辑的文本块,供用户阅读或修改.仅当需要的输入很多时,才应使用 UITextView. UITextView 是一个类,选中文本框后可以在 Attribute Inspector 中设置其各种属性. Attribute Inspector 分为3部分,分别是TextField.Control和View部分.我们重点看看TextField部分,TextField部分有以下选项: Text:设置

UITextView 实现placeholder的方法

本文转载至 http://www.cnblogs.com/easonoutlook/archive/2012/12/28/2837665.html 在UITextField中自带placeholder属性,可以用于提示输入框信息.但是UITextView并不具备此功能 介绍两种方法来实现: 第一种: 初始化UITextView //首先定义UITextView UITextView *textView = [[UITextView alloc] init]; textView.font = [U

iOS开发-UITextView实现PlaceHolder的方式

之前开发遇到过UITextField中加入一个PlaceHolder的问题,直接设置一下即可,不过这次是需要在UITextView中实现一个PlaceHolder,跟之前有点不同.在网上参考了各位前辈的解决方案,大概有两种方式,第一种方式很猥琐,就是直接给UITextView的text赋值,比如说默认提示是"博客园FlyElephant",在textViewDidChange中判断是不是“博客园FlyElephant”,如果是就清空,如果不是就继续提示,弊端就是用户输入的内容不能和你的

UITextView添加Placeholder(swift)

UITextView添加Placeholder(swift) by 伍雪颖 添加UILabel并初始化 public let placeholderLabel: UILabel = UILabel() @IBInspectable public var placeholder: String = "" { didSet { placeholderLabel.text = placeholder } } @IBInspectable public var placeholderColor