用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
核心代码: