想要从uitextfield.placeholder中检索旧值

时间:2018-01-25 10:46:53

标签: ios swift uitextfield

我将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)])
    }
}

1 个答案:

答案 0 :(得分:1)

我假设当你调用这个函数'fieldEmptyError'时,你已经检查了你正在调用这个函数的文本字段,例如:username textField,所以你可以再添加一个参数给这个函数,它可以作为“占位符“然后根据您的文本字段检查传递静态值。像:

func fieldEmptyError(value: Bool, textField:UITextField, placeHolder: String)

因此,如果您发现您的userName字段为空,则可以将此函数称为:

fieldEmptyError(value:true, textField:textField, placeHolder:"Username")

另一种解决方案可能是当用户尝试输入文本字段时,可以在文本字段的委托方法中重置占位符。你可以使用方法textFieldDidBeginEditing或textField:shouldChangeCharacterInRange,这符合你的要求。

希望它有所帮助.. !!