我将textFieldval(例如用户名)中的占位符值保存到if条件变为(Username required *)并且即使其他条件也保持不变, 我想在else条件中使用placeHolder(Username)的旧值。 我们该怎么做?
func fieldEmptyError(value: Bool, textField:UITextField){
let textFieldVal = "\(textField.placeholder!)"
if (value){
layer.borderColor = UIColor.red.cgColor
layer.cornerRadius = 5.0
layer.masksToBounds = true
layer.borderWidth = 1
pulsate()
textField.attributedPlaceholder = NSAttributedString(string: "\(textFieldVal) required *", attributes: [NSAttributedStringKey.foregroundColor: UIColor.red, NSAttributedStringKey.font : UIFont.systemFont(ofSize: 17.0)])
}else {
layer.borderColor = UIColor.black.cgColor
textField.attributedPlaceholder = NSAttributedString(string: "\(textFieldVal)", attributes: [NSAttributedStringKey.foregroundColor: UIColor.black, NSAttributedStringKey.font : UIFont.systemFont(ofSize: 17.0)])
}
}
答案 0 :(得分:1)
我假设当你调用这个函数'fieldEmptyError'时,你已经检查了你正在调用这个函数的文本字段,例如:username textField,所以你可以再添加一个参数给这个函数,它可以作为“占位符“然后根据您的文本字段检查传递静态值。像:
func fieldEmptyError(value: Bool, textField:UITextField, placeHolder: String)
因此,如果您发现您的userName字段为空,则可以将此函数称为:
fieldEmptyError(value:true, textField:textField, placeHolder:"Username")
另一种解决方案可能是当用户尝试输入文本字段时,可以在文本字段的委托方法中重置占位符。你可以使用方法textFieldDidBeginEditing或textField:shouldChangeCharacterInRange,这符合你的要求。
希望它有所帮助.. !!