当我选择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)
}
}
答案 0 :(得分:1)
您可以这样做:
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标记并相应地设置颜色。
答案 1 :(得分:0)
如果要在用户开始键入时突出显示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
中设置TextField的viewDidLoad
属性
email.delegate = self
password.delegate = self
userName.delegate = self
也不要忘记实施UITextFieldDelegate
协议
class ViewController: UIViewController, UITextFieldDelegate