如果文本字段为空,则将边框设置为红色,如果输入文本,则删除红色边框



在Swift中,我为文本字段添加了边框颜色红色。我想实现的是,如果我们在其中输入任何文本,文本字段的边框颜色应该被删除,如果其中再次没有文本,边框颜色应该再次设置为红色。无需单击任何按钮。(仅限编程(

您可以使用以下简单代码来完成此操作。在您的视图中添加以下行didload或视图配置方法

textField.addTarget(self, action: #selector(ViewController.textFieldDidChange(_:)), for: .editingChanged)

根据需要更改文本字段边框颜色或删除边框

@objc func textFieldDidChange(_ textField: UITextField) {
if (textField.text!.isEmpty)
{
// change your textfield border color
}
else
{
// remove text field border or change color
}
}

这应该会有所帮助:

if self.yourTextField.text.isEmpty
{
self.yourTextField.layer.borderColor = UIColor.red.cgColor
self.yourTextField.layer.borderWidth = 1
}
else
{
self.yourTextField.layer.borderWidth = 0
}

Xcode 14/Swift 5.7:

设置一个绑定变量,并将.onChange修饰符与包含形状(即RoundedRectangle(的.overlay修饰符一起使用;"边界";颜色注意:您还需要使用.textFieldStyle(PlainTextField(((修饰符。

@State private var isTitleMissing: Bool = true
@State private var inputTitle: String = ""

TextField("Insert Title", text: $inputTitle)
.textFieldStyle(PlainTtextFieldStyle())
.onChange(of: inputTitle) { _ in
isTitleMissing = inputTitle.isEmpty
}
.overlay(RoundedRectangle(cornerRadius: 16).stroke(isTitleMissing ? Color.red : Color.gray))

相关内容

最新更新