TextView是没有自带的占位符

TextView是没有自带的占位符的,咱们自己写.

思路,利用一个全局的label,他的透明与否是仿制占位符的技巧.直接上代码,略简单


- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{

    if ([text isEqualToString:@"\n"]) {

        [textView resignFirstResponder];//按回车取消第一相应者

    }

    return YES;

}


- (BOOL)textViewShouldBeginEditing:(UITextView *)textView

{

    self.lb.alpha = 0;//开始编辑时

    return YES;

}


- (BOOL)textViewShouldEndEditing:(UITextView *)textView

{//将要停止编辑(不是第一响应者时)

    if (textView.text.length == 0) {

        self.lb.alpha = 1;

    }

    return YES;

}


- (void)viewDidLoad {

    [super viewDidLoad];

    UITextView *tv = [[UITextView alloc] initWithFrame:CGRectMake(10, 100, 300, 200)];

    tv.delegate = self;

    tv.backgroundColor = [UIColor redColor];

    self.lb = [[UILabel alloc] initWithFrame:CGRectMake(10, 100, 300, 50)];

    self.lb.text = @"我是占位符";

    self.lb.enabled = NO;

    self.lb.backgroundColor = [UIColor greenColor];

    [tv addSubview:self.lb];

    [self.view addSubview:tv];

}



你可能感兴趣的:(iOS常用)