关于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的占位符的问题们就解决了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容