Создал UItextfield программно, как получить текст позже в Swift? - PullRequest
0 голосов
/ 23 февраля 2019

Я сделал UITextField программно в классе viewDidAppear, как показано ниже:

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.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

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)
    }

надеюсь, этого было достаточно просто:)

0 голосов
/ 23 февраля 2019

Вы объявили 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 из любого метода в вашем контроллере представления, включая действие кнопки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...