[英]Created UItextfield programmatically, how to get text later in 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中。
您已將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
。
斯威夫特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)
}
希望這足夠了:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.