swift – 验证UITextField

我在我的应用程序中有这个插座:
@IBOutlet var name1: UITextField!

@IBOutlet var name2: UITextField!

@IBOutlet var name3: UITextField!

@IBOutlet var name4: UITextField!

@IBOutlet var newButton: UIButton!

我试图做的是以下内容

每当用户在这四个文本字段之一中键入内容删除某些内容时,我想检查是否有任何文本字段为空

如果任何文本字段为空,则应禁用该按钮.

如果设置了所有文本字段(非空),则应启用该按钮.

我的代码

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%.

当我在每个文本字段中键入一个字符时,该按钮仍处于禁用状态.

当我向任何文本字段添加第二个时,该按钮被启用等…

有人可以帮我这个吗?

问候和感谢!

或者,你可以使用它,每次按下一个键时都会调用它:
name1.addTarget(self,action: "textFieldDidChange:",forControlEvents: UIControlEvents.EditingChanged)
name2.addTarget(self,forControlEvents: UIControlEvents.EditingChanged)
name3.addTarget(self,forControlEvents: UIControlEvents.EditingChanged)
name4.addTarget(self,forControlEvents: UIControlEvents.EditingChanged)


func textFieldDidChange(textField: UITextField) {
    if name1.text == "" || name2.text == "" || name3.text == "" || name4.text == "" {
        //disable button
    } else {
        //Enable button
    }
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...