我在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中。
最佳答案
您已将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
。关于ios - 以编程方式创建的UItextfield,稍后如何在Swift中获取文本?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54845062/