所以我有一个UIAlertController,有2个文本框,然后我想监视每当这些文本框编辑,看看他们是否符合一定的标准。如何使用#selector函数传递变量?以及传递给textField:UITextField的内容?
在这种情况下,只要两个文本字段的输入都短于要传递给该函数的数字,我希望我的警报按钮处于非活动状态。
所以我加入这个目标到两个文本框:
textField.addTarget(自我,动作:#selector(self.handleTextFieldEdit),用于:.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传递任何变量。
我的第二个问题是,我不知道该怎么传递给_文本框:的UITextField
我曾经尝试都的UITextField和文本框(这是我宣布我的UITextFields到)。
出现的错误是:无法将类型'UITextField'.Type的值转换为期望的参数类型'UITextField'。
编辑:我所有的代码工作,只要我不通过一个变量与函数btw。问题是我希望每当我调用函数时都改变最小值。
非常感谢您的详细解答! – Elhoej