UITextView实现placeHolder属性

这个可以算 http://www.jianshu.com/p/70b4a7f8a586  的姊妹篇.

UITextView没有placeHolder属性,想给他这个功能.于是查找了下.

当当当!!!!

通过一番查找,发现可以使用的最简单方法 还是利用KVC方式,给UITextView添加 placeHolderLabel .


通过runtime方式,可以发现,UITextView内部有一个名为“_placeHolderLabel”的私有成员变量。大家知道,Objective-C没有绝对的私有变量,因为我们可以通过KVC来访问私有变量。

// 利用runtime给UITextView添加一个placeHolderLabel

let textview = UITextView()

let placeHolderLabel = UILabel()

placeHolderLabel.text = "我是textview的placeHolder"

placeHolderLabel.numberOfLines = 0;

placeHolderLabel.textColor = UIColor.lightGray

placeHolderLabel.sizeToFit()

textview.addSubview(placeHolderLabel)

placeHolderLabel.font = UIFont.boldSystemFont(ofSize: 13)

textview.setValue(placeHolderLabel, forKey: "_placeholderLabel")

你可能感兴趣的:(UITextView实现placeHolder属性)