Swift - 验证 UITextField

标签 swift validation uitextfield

我的应用程序中有这些 socket :

@IBOutlet var name1: UITextField!

@IBOutlet var name2: UITextField!

@IBOutlet var name3: UITextField!

@IBOutlet var name4: UITextField!

@IBOutlet var newButton: UIButton!

我尝试做的是以下内容:

每当用户在这四个 UITextField 之一中键入内容或删除内容时,我想检查是否有任何 UITextField 为空

如果任何 UITextField 为空,则应禁用该按钮。

如果设置了所有 UITextField(非空),则应启用该按钮。

我的代码:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {

    setButton()

    return true
}

func setButton() {

    let inputValid = checkInput()

    if inputValid {

        newButton.enabled = true

    } else {

        newButton.enabled = false

    }

}

func checkInput() -> Bool {

    let name1Value = name1.text
    let name2Value = name2.text
    let name3Value = name3.text
    let name4Value = name4.text

    if !name1Value.isEmpty && !name2Value.isEmpty && !name3Value.isEmpty && !name4Value.isEmpty {

        return true

    }

    return false

}

好的,目前它的工作效率为 50%。

当我在每个 UITextField 中键入一个字符时,该按钮仍处于禁用状态。

当我将第二个添加到任何 UITextField 时,按钮将被启用等...

谁能帮我解决这个问题?

最佳答案

或者,您可以使用它,每次按下一个键时都会调用它:

name1.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)
name2.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)
name3.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)
name4.addTarget(self, action: "textFieldDidChange:", forControlEvents: UIControlEvents.EditingChanged)


func textFieldDidChange(textField: UITextField) {
    if name1.text?.isEmpty || name2.text?.isEmpty || name3.text?.isEmpty || name4.text?.isEmpty {
        //Disable button
    } else {
        //Enable button
    }
}

关于Swift - 验证 UITextField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31495188/

相关文章:

java - 将业务规则存储在 XML 文档中,然后在 Java 中验证,如何?

javascript - 当使用append()更新值时,需要文本区域的提交被阻止

ios - 允许用户删除文本字段文本但限制最大文本长度

swift - 如何从代码访问实体 - 游戏工具包

javascript - 如何在上传前验证图片大小?

iphone - 如何获取 UITextField 的 textDidChange (如 UISearchBar)方法?

ios - 在 iOS 中检测退格键

ios - Swift - 向 UITextfield 添加带有间距的底线

ios - 如何在 Swift 中使用关联类型测试协议(protocol)的一致性?

ios - View Controller 从 iOS 中的导航堆栈弹出后解析中的完成 block