学生溺水,iphone5查询激活时间,视频美女热舞
我们都知道ios开发中的uitextfield有个placeholder属性,placeholder可以很方便引导用户输入。但是uitextview却没有placeholder属性。
一、猥琐的方法
如何让uitextview也有placeholder功能呢?今天给各位分享一个比较猥琐的做法。思路大概是这样的:
实现方法:
1.创建uitextview:
别忘了设置uitextview的代理,因为后面我们要用到uitextview的两个代理方法。
2.开始编辑的代理方法:
if ([textview.text isequaltostring:@"jb51.net"]) {
textview.text = @"";
textview.textcolor = [uicolor blackcolor];
}
}
3.结束编辑的代理方法:
4.添加轻击手势
//轻击手势触发方法
-(void)tapgesture:(uitapgesturerecognizer *)sender
{
[self.view endediting:yes];
}
demo地址:iosstrongdemo
二、通常的方法
接下来来看比较通常的方法,哈哈~那么,这一次我将简单的封装一个uitextview。暂且取名叫ggplaceholdertextview,gg前缀看着有点任性的哈。
ggplaceholdertextview简介:
ggplaceholdertextview也是对text操作,具体逻辑如下:
继承uitextview,并设置placeholder属性:
注册开始编辑和结束编辑通知,然后对text做相应的操作
通过uiapplicationwillterminatenotification通知,在app退出的时候移除通知。
我把ggplaceholdertextview写在下面。不过,微信里看代码还是不太方便,我已经把代码push到:iosstrongdemo。你可以下载下来。
#import <uikit/uikit.h>
@interface ggplaceholdertextview : uitextview
@property(nonatomic, strong) nsstring *placeholder;
@end
#import "ggplaceholdertextview.h"
@implementation ggplaceholdertextview
- (id)initwithframe:(cgrect)frame {
if (self = [super initwithframe:frame]) {
[self addobserver];
}
return self;
}
- (id)init {
if (self = [super init]) {
[self addobserver];
}
return self;
}
- (void)setplaceholder:(nsstring *)placeholder
{
_placeholder = placeholder;
self.text = placeholder;
self.textcolor = [uicolor graycolor];
}
-(void)addobserver
{
//注册通知
[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(didbeginediting:) name:uitextviewtextdidbegineditingnotification object:self];
[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(didendediting:) name:uitextviewtextdidendeditingnotification object:self];
[[nsnotificationcenter defaultcenter] addobserver:self selector:@selector(terminate:) name:uiapplicationwillterminatenotification object:[uiapplication sharedapplication]];
}
- (void)terminate:(nsnotification *)notification {
//移除通知
[[nsnotificationcenter defaultcenter] removeobserver:self];
}
- (void)didbeginediting:(nsnotification *)notification {
if ([self.text isequaltostring:self.placeholder]) {
self.text = @"";
self.textcolor = [uicolor blackcolor];
}
}
- (void)didendediting:(nsnotification *)notification {
if (self.text.length<1) {
self.text = self.placeholder;
self.textcolor = [uicolor graycolor];
}
}
@end
实践:
ggplaceholdertextview *textview = [[ggplaceholdertextview alloc] initwithframe:cgrectmake(0, 64, screen.width , 200)];
textview.backgroundcolor = [uicolor whitecolor];
textview.placeholder = @"jb51.net";
[self.view addsubview:textview];
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
iOS 使用UITextField自定义搜索框 实现用户输入完之后“实时搜索”功能
网友评论