https://github.com/YouXianMing

用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

核心代码:

 

posted @ 2014-12-18 22:34  YouXianMing  阅读(390)  评论(0编辑  收藏  举报