這個可以算 http://www.lxweimin.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")