我正在使用一个UIAlertController
向用户呈现一个对话框以输入5 位 CRN。我想要Add
按钮将被禁用,直到字段中有五位且仅有五位数字。UITextField
.
用户界面如下所示:
以下是为以下内容设置的属性UIAlertController
:
var alertController: UIAlertController!
var addAlertAction: UIAlertAction! {
return UIAlertAction(title: "Add", style: .default)
}
这是我在中初始化它们的方法viewDidLoad
method:
self.alertController = UIAlertController(title: "Add Class", message: "Input CRN", preferredStyle: .alert)
self.alertController.addAction(addAlertAction)
self.alertController.addAction(UIAlertAction(title: "Cancel", style: .destructive))
self.alertController.addTextField { (textField) in
textField.delegate = self
textField.keyboardType = .numberPad
}
这是我尝试使用以下方法禁用/启用按钮的方法UITextFieldDelegate
method:
func textFieldDidEndEditing(_ textField: UITextField) {
if ((textField.text?.characters.count)! == 5) {
self.alertController.actions[0].isEnabled = true
} else {
self.alertController.actions[0].isEnabled = false
}
}
但是,该按钮始终保持禁用(或启用)状态。它永远不会被启用。出了什么问题?