【发布时间】:2021-06-29 12:37:50
【问题描述】:
我想从 ViewController 更改 CustomTextField 类中的“leftIcon”变量。 但是,我在 CustomTextField 类中收到以下错误。
自定义文本字段
class CustomTextField: UITextField, UITextFieldDelegate {
//"person"
private var showPassword: Bool = false
var leftIcon: String = ""
private let leftIconView: UIImageView = {
let icon = UIImage(systemName: leftIcon)
let imageView = UIImageView(image: icon)
imageView.contentMode = .scaleAspectFit
imageView.tintColor = .white
return imageView
}()
}
错误:
Instance member 'leftIcon' cannot be used on type 'CustomTextField'; did you mean to use a value of this type instead?
视图控制器
class ViewController: UIViewController {
var textfield = CustomTextField()
override func viewDidLoad() {
super.viewDidLoad()
self.textfield.leftIcon = "person"
}
}
【问题讨论】:
-
对不起,我删除了我的答案,因为它不可能是正确的。我不确定发生了什么,但我会考虑一下。如果在您的
ViewController中,行设置textfield是var textfield = CustomTextField,而不调用初始化程序,但您正在调用它,那么该错误将是有意义的,所以除非有一些其他相关的错误,否则这是一个谜对我来说。 -
那么是
let icon = UIImage(systemName: leftIcon)上发生的错误吗? -
@ChipJarred 是的
-
对不起,如果您在我疯狂编辑时尝试阅读我的答案。我得到了在 Xcode 中工作的提炼代码,所以我认为当你添加我删除的代码时它会解决你的问题。
-
我尝试了这两种解决方案,但我无法从 viewDidLoad 更改 CustomTextField 中的 leftIcon 值。 @ChipJarred
标签: ios swift uitextfield programmatically-created programmatically