源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

iOS应用开发中使UITextField实现placeholder属性的方法

  • 时间:2022-06-22 13:33 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:iOS应用开发中使UITextField实现placeholder属性的方法
我们都知道iOS开发中的UITextField有个placeholder属性,placeholder可以很方便引导用户输入。但是UITextView却没有placeholder属性。 [b]一、猥琐的方法[/b] 如何让UITextView也有placeholder功能呢?今天给各位分享一个比较猥琐的做法。思路大概是这样的: [list] [*]把UITextView的text当placeholder使用。[/*] [*]在开始编辑的代理方法里清除placeholder。[/*] [*]在结束编辑的代理方法里在设置placeholder。[/*] [/list] 实现方法: 1.创建UITextView:
[url=https://github.com/worldligang/iOSStrongDemo]iOSStrongDemo[/url] [b]二、通常的方法 [/b]接下来来看比较通常的方法,哈哈~那么,这一次我将简单的封装一个UITextView。暂且取名叫GGPlaceholderTextView,GG前缀看着有点任性的哈。 GGPlaceholderTextView简介: GGPlaceholderTextView也是对text操作,具体逻辑如下: 继承UITextView,并设置placeholder属性: 注册开始编辑和结束编辑通知,然后对text做相应的操作 通过UIApplicationWillTerminateNotification通知,在APP退出的时候移除通知。 我把GGPlaceholderTextView写在下面。不过,微信里看代码还是不太方便,我已经把代码push到:iOSStrongDemo。你可以下载下来。
[u]复制代码[/u] 代码如下:
GGPlaceholderTextView.h #import <UIKit/UIKit.h> @interface GGPlaceholderTextView : UITextView @property(nonatomic, strong) NSString *placeholder; @end
定义placeholder属性,类似于UITextField。
[u]复制代码[/u] 代码如下:
GGPlaceholderTextView.m #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的实现,如果你有类似需求,直接拿去用吧!具体用法请往下看。 实践:
[u]复制代码[/u] 代码如下:
GGPlaceholderTextView *textView = [[GGPlaceholderTextView alloc] initWithFrame:CGRectMake(0, 64, SCREEN.width , 200)]; textView.backgroundColor = [UIColor whiteColor]; textView.placeholder = @"jb51.net"; [self.view addSubview:textView];
经过封装后的GGPlaceholderTextView,使用起来是不是跟UITextField非常相似。当然,我封装的比较简单,github上也有一些朋友封装带placeholder属性的UITextView。比如:TextViewPlaceholder。感兴趣的童鞋可以去试用一下。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部