我有一个 UIPickerView,在 selectedRowInComponent 中有一个 if 语句,用于检查 textField 的值。如果用户在文本字段中输入的数字大于 10,则会发出警报。一切都运行良好,除了我想让警报仅在选择行并编辑字段后触发一次。按照目前的情况,每次更新/编辑字段的值大于 10 时都会调用警报。初始警报就足够了。关于如何完成此任务有什么建议吗?谢谢!
if (inputField.text! as NSString).doubleValue > 10 {
SweetAlert().showAlert("Number is greater than 10", subTitle: "Please select number less than 10", style: AlertStyle.CustomImag(imageFile: "alertimage.png"))
}
最佳答案
快速而肮脏:
在 viewController 中创建一个公开可用的 bool 变量,并将其初始化为 false(让我们调用变量“alertAlreadyShown”)
然后只需在 pickerView 方法中对该 bool 进行 if 语句即可
if (inputField.text! as NSString).doubleValue > 10 {
if (alertAlreadyShown == false) {
SweetAlert().showAlert(...)
alertAlreadyShown = true
}
}
但不要忘记在适当的时间重置 bool 值以再次启用警报
关于Swift UIAlertController 每行触发一次选择编辑的文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36416523/