首页 > 解决方案 > 以编程方式创建 UItextfield,以后如何在 Swift 中获取文本?

问题描述

我在 viewDidAppear 类中以编程方式创建了一个 UITextField,如下所示:

let userfield: UITextField = UITextField(frame: CGRect(x: 0, y: 0, width: 500.00, height: 30.00));
userfield.backgroundColor = UIColor.white
userfield.borderStyle = UITextField.BorderStyle.roundedRect
userfield.keyboardType = .emailAddress
userfield.placeholder = "Email"
view.addSubview(userfield)

但是,当我尝试在另一个函数中调用它时,文本字段显示没有问题:

@objc func buttonregisteraction(sender: UIButton!) {
    if let username = userfield.text, let password = password.text 

我收到此错误:“未解析的标识符'userfield'”

我见过同样的问题,但只在 Objective-C 中。

标签: iosswiftuitextfield

解决方案


您已声明userfield为仅在内部可用的变量viewDidAppear。您需要使其成为视图控制器的属性。

class YourViewController: UIViewController {
    var userfield: UITextField! // declare it here

    override func viewDidLoad() {
        super.viewDidLoad()

        userfield = UITextField(frame: CGRect(x: 0, y: 0, width: 500.00, height: 30.00));
        userfield.backgroundColor = UIColor.white
        userfield.borderStyle = UITextField.BorderStyle.roundedRect
        userfield.keyboardType = .emailAddress
        userfield.placeholder = "Email"
        view.addSubview(userfield)
    }
}

现在您可以userfield从视图控制器中的任何方法访问,包括您的按钮操作。


推荐阅读