首页 > 解决方案 > 选择时如何更改uitextfield边框

问题描述

如何在选择或开始在其中键入一些文本时更改我的 uitextfield 的边框

我尝试但它不起作用检查代码

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

标签: iosswiftuitextfield

解决方案


如果您想在用户开始输入时突出显示 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
}

因此,如果您想使用这些方法,请不要忘记设置delegateTextFields 的属性,viewDidLoad例如

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

也不要忘记实现UITextFieldDelegate协议

class ViewController: UIViewController, UITextFieldDelegate

推荐阅读