在UITextField不再隐藏后禁用UIButton?



我有一个简单的任务,但我似乎无法弄清楚。我有一个有 5 个UITextFieldsUIViewController。其中 2 个UITextFields始终可见。其他用户点击UIButton时显示其他 3 个。 我的目标是禁用UIButton这样用户就很明显,在所有UITextFields都可见后,他们无法"添加"更多UITextFields。我试图这样做:

@IBAction func addTextFieldPressed(_ sender: UIButton) {
if !thirdChoiceTextField.isHidden, !forthChoiceTextField.isHidden, !fifthChoiceTextField.isHidden {
addTextFieldButton.isEnabled = false
}
if thirdChoiceTextField.isHidden {
UIView.animate(withDuration: 0.2) {
self.thirdChoiceTextField.isHidden = false
}
}
else if forthChoiceTextField.isHidden {
UIView.animate(withDuration: 0.2) {
self.forthChoiceTextField.isHidden = false
}
}
else {
UIView.animate(withDuration: 0.2) {
self.fifthChoiceTextField.isHidden = false
}
}
}

但它不起作用。您可以添加UITextFields。还有一个UIButton允许用户删除 3 个添加的UITextField.因此,我必须确保如果显示所有文本字段,则负责添加更多UITextFieldsUIButton将被禁用,但如果删除任何UITextFields(.isHidden = true(,则应再次启用该按钮。

更新:这是用户点击"隐藏"按钮后运行的代码,它基本上隐藏了第 3 个、第 4 个或第 5 个UITextField

@objc func hideTextField(_ sender: UIButton) {
if let  field = sender.superview?.superview as? UITextField, !field.isHidden {
UIView.animate(withDuration: 0.2) {
field.text = ""
field.isHidden = true
}
}
}

缺少其他条件。

@IBAction func addTextFieldPressed(_ sender: UIButton) {
if !thirdChoiceTextField.isHidden, !forthChoiceTextField.isHidden, !fifthChoiceTextField.isHidden {
addTextFieldButton.isEnabled = false
}
else{
addTextFieldButton.isEnabled = true
}
if thirdChoiceTextField.isHidden {
UIView.animate(withDuration: 0.2) {
self.thirdChoiceTextField.isHidden = false
}
}
else if forthChoiceTextField.isHidden {
UIView.animate(withDuration: 0.2) {
self.forthChoiceTextField.isHidden = false
}
}
else {
UIView.animate(withDuration: 0.2) {
self.fifthChoiceTextField.isHidden = false
}
}
}

更新(尝试添加此按钮以启用按钮(

@objc func hideTextField(_ sender: UIButton) {
if let  field = sender.superview?.superview as? UITextField, !field.isHidden {
UIView.animate(withDuration: 0.2) {
field.text = ""
field.isHidden = true
}
}
if !thirdChoiceTextField.isHidden, !forthChoiceTextField.isHidden, !fifthChoiceTextField.isHidden {
addTextFieldButton.isEnabled = false
}
else{
addTextFieldButton.isEnabled = true
}
}

最新更新