gpt4 book ai didi

ios - 初始化后在 UITextField 的子类上设置 rightview

转载 作者:行者123 更新时间:2023-11-30 13:02:29 27 4
gpt4 key购买 nike

我尝试在 UITextField 初始化后设置 rightView,但它得到 nil。这是我的类(class):

class MyTextField: UITextField, UIGestureRecognizerDelegate {  
public required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
prepare()
}

public override init(frame: CGRect) {
super.init(frame: frame)
prepare()
}

public convenience init() {
self.init(frame: .zero)
}

open private(set) var errorUIImageView = UIImageView(image: (resourceName: "ic_error_red"))

open func prepare() {
print("prepare")
let tap = UITapGestureRecognizer(target: self, action: Selector(("handleTap:")))
tap.numberOfTapsRequired = 1
tap.delegate = self
errorUIImageView.isUserInteractionEnabled = true
errorUIImageView.addGestureRecognizer(tap)
self.rightView = errorUIImageView // setting the rightView here
}

@IBInspectable
open var detail: String? {
get {
return detailLabel.text
}
set(value) {
detailLabel.text = value
if let v: String = value {
self.rightViewMode = .always

if self.rightView == nil {
print("nil") // this line is reached!
}
}
else {
self.rightViewMode = .never;
}
}
}

@IBInspectable
open var detailColor = UIColor.red {
didSet {
if let v: String = detailLabel.text {
detailLabel.attributedText = NSAttributedString(string: v, attributes: [NSForegroundColorAttributeName: detailColor])
}
}
}

@IBInspectable
open private(set) lazy var detailLabel = UILabel(frame: .zero)

func handleTap(sender: UITapGestureRecognizer) {

print("tapped")
}
}

大部分代码取自Material

最佳答案

如果您在界面构建器中首次显示实现后对其进行了编辑,则可能需要刷新所有 View 。

enter image description here

关于ios - 初始化后在 UITextField 的子类上设置 rightview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39764893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com