关于TextView的placeholderLabel占位符的问题。

我们都知道UITextField占位符很好用,给大家一个输入的提醒。
但是同样作为输入控件的UITextView为什么就没有placeholderLabel这个属性呢?当初我自己各种点这个属性。就是没有,真的不方便,难道是真的没有么?

不是的 苹果把这个属性个隐藏私有化了。不让直接调用了我们查看一下。

    unsigned int count = 0;
    Ivar *ivars= class_copyIvarList(UITextView.class, &count);
    

    for (int i = 0; i < count; i ++) {
        Ivar ivar = ivars[i];
        const char *name = ivar_getName(ivar);
        NSString *objcName = [NSString stringWithUTF8String:name];
        NSLog(@"%@",objcName);
    }

打印出来的结果是这样的

WX20170703-133519.png

那么我们就可以这样做了

    UILabel *label = [[UILabel alloc] init];
    label.text = @"这是一个占位符...";
    label.textColor = [UIColor lightGrayColor];
    [label sizeToFit];
    [_textView addSubview:label];
    [_textView setValue:label forKey:@"_placeholderLabel"];

好了关于UITextView的占位符的问题们就解决了。

推荐阅读更多精彩内容