【发布时间】:2017-10-27 09:04:32
【问题描述】:
所以我有一个 UIAlertController,有 2 个文本字段,然后我想在编辑这些文本字段时监控它们是否符合特定条件。
在这种情况下,只要两个文本字段输入都比我要传递给函数的数字短,我希望我的警报按钮处于非活动状态。
所以我将这个目标添加到两个文本字段中:
textField.addTarget(self, action: #selector(self.handleTextFieldEdit), for: .editingChanged)
在handleTextFieldEdit里面我有这个:
func handleTextFieldEdit(_ textField: UITextField, number: Int)
{
let number = number
let alertController:UIAlertController = self.presentedViewController as! UIAlertController;
let textField: UITextField = alertController.textFields![0]
let confirmField: UITextField = alertController.textFields![1]
let addAction: UIAlertAction = alertController.actions[0];
if ((textField.text?.characters.count)! > number && (confirmField.text?.characters.count)! > number)
{
addAction.isEnabled = true
}
else if ((textField.text?.characters.count)! <= number || (confirmField.text?.characters.count)! <= number )
{
addAction.isEnabled = false
}
}
现在我的第一个问题是我似乎无法使用#selector func 传递任何变量。
我的第二个问题是我不知道将什么传递给 _ textField: UITextField
我已经尝试了 UITextField 和 textField(这是我声明我的 UITextFields 的)。
出现的错误是:无法将“UITextField”类型的值转换为预期的参数类型“UITextField”。
编辑:只要我不使用函数 btw 传递变量,我的所有代码都可以工作。问题是我希望在调用函数时更改最小值。
【问题讨论】: