我的应用程序中有以下商店:
@IBOutlet var name1: UITextField! @IBOutlet var name2: UITextField! @IBOutlet var name3: UITextField! @IBOutlet var name4: UITextField! @IBOutlet var newButton: UIButton!
我试图做的是以下几点:
每次用户在这四个值之一中键入内容UITextField或删除内容时,我都要检查是否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 } }