gpt4 book ai didi

ios - Swift:设置委托(delegate)

转载 作者:行者123 更新时间:2023-12-01 16:05:38 25 4
gpt4 key购买 nike

我想我对 swift 的代表有误解。我想要做的是,以编程方式将 textField 添加到我的 Controller 中。因此,我编辑了我的类(class),如下所示:

class HomeController: UICollectionViewController, UICollectionViewDelegateFlowLayout, UITextFieldDelegate {
}

据我了解,现在我可以向我的 Textfield 添加一个 UITextFieldDelegate ,它将调用扩展。
但不知何故,每次我设置委托(delegate)时,它都会告诉我:

Cannot assign value of type '(HomeController) -> () -> HomeController' to type 'UITextFieldDelegate?'



因此,我想知道,如何将 TextField 的委托(delegate)设置为 UITextFieldDelegate?

我的类(class)如下所示:
 class HomeController: UICollectionViewController, UICollectionViewDelegateFlowLayout, UITextFieldDelegate {
let sampleTextField: UITextField = {
let textField = UITextField(frame: CGRect(x: 20, y: 100, width: 300, height: 40))
textField.placeholder = "Enter text here"
textField.font = UIFont.systemFont(ofSize: 15)
textField.borderStyle = UITextField.BorderStyle.roundedRect
textField.autocorrectionType = UITextAutocorrectionType.no
textField.keyboardType = UIKeyboardType.default
textField.returnKeyType = UIReturnKeyType.done
textField.clearButtonMode = UITextField.ViewMode.whileEditing
textField.contentVerticalAlignment = UIControl.ContentVerticalAlignment.center
textField.delegate = self

return textField
}()
}

最佳答案

改变:

let sampleTextField: UITextField = {

到:
lazy var sampleTextField: UITextField = {

编辑

添加一些说明...

使用 var 声明属性(类级变量)时或 let ,它立即被实例化,并且对类的其余部分一无所知。

如果您使用 lazy var , 直到 才被实例化首次使用 ...此时它确实知道该类并且可以访问 self .

关于ios - Swift:设置委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61524115/

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