以编程方式创建 UItextfield,稍后如何在 Swift 中获取文本?
Created UItextfield programmatically, how to get text later in Swift?
我在 viewDidAppear class 中以编程方式制作了一个 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
我收到此错误:"Unresolved Identifier '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
,包括您的按钮操作。
Swift 4.2
将此代码用于文本字段和属性。你可以添加更多 属性.
lazy var textExample: UITextField = {
let textFiled = UITextField()
textFiled.text = "how you doing man?"
textFiled.frame = CGRect(x: 100, y: 100, width: 100, height: 30)
textFiled.font = UIFont.boldSystemFont(ofSize: 12)
textFiled.textAlignment = .left
textFiled.textColor = .blue
textFiled.layer.borderColor = UIColor.blue.cgColor
textFiled.layer.borderWidth = 1
return textFiled
}()
然后像这样在视图中添加:
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(button)
}
希望这就足够了:)
我在 viewDidAppear class 中以编程方式制作了一个 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
我收到此错误:"Unresolved Identifier '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
,包括您的按钮操作。
Swift 4.2
将此代码用于文本字段和属性。你可以添加更多 属性.
lazy var textExample: UITextField = {
let textFiled = UITextField()
textFiled.text = "how you doing man?"
textFiled.frame = CGRect(x: 100, y: 100, width: 100, height: 30)
textFiled.font = UIFont.boldSystemFont(ofSize: 12)
textFiled.textAlignment = .left
textFiled.textColor = .blue
textFiled.layer.borderColor = UIColor.blue.cgColor
textFiled.layer.borderWidth = 1
return textFiled
}()
然后像这样在视图中添加:
override func viewDidLoad() {
super.viewDidLoad()
view.addSubview(button)
}
希望这就足够了:)