我们都知道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的占位符的问题们就解决了。
网友评论