使用案例
```
extension UITextView {
```
private struct RuntimeKey {
static let hw_placeholderLabelKey = UnsafeRawPointer.init(bitPattern: "hw_placeholderLabelKey".hashValue)
/// ...其他Key声明
}
/// 占位文字
@IBInspectable public var placeholder: String {
get {
return self.placeholderLabel.text ?? ""
}
set {
self.placeholderLabel.text = newValue
}
}
/// 占位文字颜色
@IBInspectable public var placeholderColor: UIColor {
get {
return self.placeholderLabel.textColor
}
set {
self.placeholderLabel.textColor = newValue
}
}
private var placeholderLabel: UILabel {
get {
var label = objc_getAssociatedobject(self,UITextView.RuntimeKey.hw_placeholderLabelKey!) as? UILabel
if label == nil {
if (self.font == nil) {
self.font = UIFont.systemFont(ofSize: 14)
}
label = UILabel.init(frame: self.bounds)
label?.numberOfLines = 0
label?.font = self.font
label?.textColor = UIColor.lightGray
self.addSubview(label!)
self.setValue(label!,forKey: "_placeholderLabel")
objc_setAssociatedobject(self,UITextView.RuntimeKey.hw_placeholderLabelKey!,label!,.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
self.sendSubview(toBack: label!)
}
return label!
}
set {
objc_setAssociatedobject(self,newValue,.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}
}
```
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。