我需要一种方法来禁用保存按钮,直到在所有必需的文本框中输入文本为止?我正在Swift中开发应用程序,我在Objective-c中找到了很多答案。由于我现在已经掌握了Objective-c知识,所以我无法弄清楚它的含义。
有没有人可以在Swift中解决这个问题?
我知道如何启用/禁用按钮。我也知道如何检查文本字段是否为空。我只是不确定如何制作它以便我的代码始终检查它是否为空。我尝试了一个while循环,但正如我所料,这冻结了一切。
答案 0 :(得分:3)
列出实现此目的的一种方法:
class ViewController: UIViewController, UITextFieldDelegate {
@IBOutlet weak var textField: UITextField!
@IBOutlet weak var button: UIButton!
//Need to have the ViewController extend UITextFieldDelegate for using this feature
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
// Find out what the text field will be after adding the current edit
let text = (textField.text as NSString).stringByReplacingCharactersInRange(range, withString: string)
if !text.isEmpty{//Checking if the input field is not empty
button.userInteractionEnabled = true //Enabling the button
} else {
button.userInteractionEnabled = false //Disabling the button
}
// Return true so the text field will be changed
return true
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//Setting the Delegate for the TextField
textField.delegate = self
//Default checking and disabling of the Button
if textField.text.isEmpty{
button.userInteractionEnabled = false // Disabling the button
}
}
}
答案 1 :(得分:2)
尽管到目前为止给出了所有评论,并且没有进一步夸大评论区域,我尝试提供一些如何解决问题的提示:
didEndEditing
方法,并在该方法中迭代出口集合以检查每个文本字段的输入请注意,这只是实现这一目标的一种方式,但您可能会明白这一点。
答案 2 :(得分:1)
使用文本字段的委托方法(或目标操作模式)来检查用户继续操作所需的条件。如果满足,请启用该按钮。