用UITextView模拟UITextField的placeHolder

简介:

用UITextView模拟UITextField的placeHolder

效果:

源码:

//
//  ViewController.m
//  TextView
//
//  Created by YouXianMing on 14/12/18.
//  Copyright (c) 2014年 YouXianMing. All rights reserved.
//

#import "ViewController.h"

static NSString *placeHolderStr = @"User Name";

@interface ViewController ()<UITextViewDelegate>

@property (nonatomic, strong) UITextView  *textView;
@property (nonatomic, strong) UIButton    *button;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 反应的按钮
    self.button = [[UIButton alloc] initWithFrame:self.view.bounds];
    [self.button addTarget:self
                    action:@selector(buttonEvent)
          forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:self.button];
    
    // textView
    self.textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 20, 320, 200)];
    self.textView.layer.borderWidth = 1.f;
    self.textView.layer.borderColor = [UIColor grayColor].CGColor;
    self.textView.delegate  = self;
    self.textView.text      = placeHolderStr;
    self.textView.font      = [UIFont systemFontOfSize:20.f];
    self.textView.textColor = [UIColor grayColor];
    [self.view addSubview:self.textView];
}

#pragma mark - 代理方法
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView {
    // 设置编辑状态文字颜色
    textView.textColor = [UIColor blackColor];
    
    // 如果文字为placeHolder文字
    if ([textView.text isEqualToString:placeHolderStr]) {
        textView.text      = @"";
    }
    
    return YES;
}
- (BOOL)textViewShouldEndEditing:(UITextView *)textView {
    
    // 如果长度为0,则显示placeHolder文字
    if (textView.text.length == 0) {
        textView.text = placeHolderStr;
        textView.textColor = [UIColor grayColor];
    }
    
    return YES;
}

/**
 *  反应的按钮
 */
- (void)buttonEvent {
    [self.textView resignFirstResponder];
}

@end

核心代码:

 

目录
相关文章
UITextField根据Keyboard自动移动
UITextField根据Keyboard自动移动
51 0
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
271 0
iOS-UITextView设置行间距,内容颜色(变相设置类似UITextField的placeholder)
UIAlertView添加textField
UIAlertView添加textField
49 0
UITextField 自定义使用
UITextField自定义使用(一)UITextField自定义使用(二)
506 0
|
数据安全/隐私保护
|
数据安全/隐私保护 iOS开发
|
数据安全/隐私保护