Как изменить границу поля uitext при выборе - PullRequest
0 голосов
/ 08 декабря 2018

Как я могу изменить границу моего поля uitext, когда оно выбрано, или начать вводить в него какой-то текст

я пытаюсь, но это не работает, проверьте код

@IBOutlet weak var email: UITextField!
@IBOutlet weak var password: UITextField!
@IBOutlet weak var userName: UITextField!

что не такздесь нет ошибок, но ничего не происходит

func fieldLayout () {

    if (self.password.isSelected == true) {
        self.password.layer.borderWidth = 4
        self.password.layer.borderColor = #colorLiteral(red: 0, green: 0.8362106681, blue: 1, alpha: 1)
    }
    if (self.email.isSelected == true) {
        self.email.layer.borderWidth = 5
        self.email.layer.borderColor = #colorLiteral(red: 0, green: 0.8362106681, blue: 1, alpha: 1)
    }
    if (self.userName.isSelected == true) {
        self.userName.layer.borderWidth = 5
        self.userName.layer.borderColor = #colorLiteral(red: 0, green: 0.8362106681, blue: 1, alpha: 1)
    }
}

Ответы [ 2 ]

0 голосов
/ 08 декабря 2018

Вы можете сделать это следующим образом:

func textFieldDidBeginEditing(_ textField: UITextField) {
       // textField.borderStyle = .line
        textField.layer.borderColor = UIColor.red.cgColor //your color
        textField.layer.borderWidth = 2.0
    }

    func textFieldDidEndEditing(_ textField: UITextField) {
        textField.layer.borderWidth = 0.0
    }

Вы можете проверить тег textField и соответственно установить цвет.

0 голосов
/ 08 декабря 2018

Если вы хотите выделить TextField, когда пользователь начинает печатать, я предлагаю вам использовать UITextField метод делегата textFieldDidBeginEditing для обработки, когда пользователь начинает печатать.

func textFieldDidBeginEditing(_ textField: UITextField) {
    if textField == email {
        textField.layer.borderWidth = 4
        textField.layer.borderColor = // your color
    } else if ...
}

вы также можете использовать textFieldDidEndEditingметод делегата для обработки, когда пользователь заканчивает ввод

func textFieldDidEndEditing(_ textField: UITextField) {
    textField.layer.borderWidth = // default width
    textField.layer.borderColor = // default color
}

Поэтому, если вы хотите использовать эти методы, не забудьте установить delegate свойства ваших текстовых полей в viewDidLoad, например

email.delegate = self
password.delegate = self
userName.delegate = self

также не забудьте реализовать UITextFieldDelegate протокол

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