swift – 防止解除UIAlertController
发布时间:2020-12-14 06:01:20 所属栏目:百科 来源:网络整理
导读:我添加一个UITextField到一个UIAlertController,它显示为一个AlertView。在关闭UIAlertController之前,我想验证UITextField的输入。基于验证我想忽略UIAlertController或不。但我没有线索如何防止UIAlertController的按下按钮时关闭动作。有没有人解决这个
我添加一个UITextField到一个UIAlertController,它显示为一个AlertView。在关闭UIAlertController之前,我想验证UITextField的输入。基于验证我想忽略UIAlertController或不。但我没有线索如何防止UIAlertController的按下按钮时关闭动作。有没有人解决这个问题或任何想法从哪里开始?我去google,但没有运气:/谢谢!
您是正确的:如果用户可以点击您的快讯中的按钮,该提醒将被关闭。所以你想防止用户点击按钮!这只是一个问题,禁用您的UIAlertAction按钮。如果禁用警报操作,则用户无法点按它以关闭。
要将此与文本字段验证结合使用,请使用文本字段委托方法或操作方法(在创建文本字段的配置处理程序时配置),以根据输入的文本(或未输入)适当地启用/禁用UIAlertActions 。 这里有一个例子。我们创建了这样的文本字段: alert.addTextFieldWithConfigurationHandler { (tf:UITextField!) in tf.addTarget(self,action: "textChanged:",forControlEvents: .EditingChanged) } 我们有一个取消操作和一个确定操作,我们带来了确定行动到世界禁用: (alert.actions[1] as UIAlertAction).enabled = false 随后,用户无法点击确定,除非文本字段中有一些实际文本: func textChanged(sender:AnyObject) { let tf = sender as UITextField var resp : UIResponder = tf while !(resp is UIAlertController) { resp = resp.nextResponder() } let alert = resp as UIAlertController (alert.actions[1] as UIAlertAction).enabled = (tf.text != "") } EDIT这里是当前(Swift 3.0.1)版本的上述代码: alert.addTextField { tf in tf.addTarget(self,action: #selector(self.textChanged),for: .editingChanged) } 和 alert.actions[1].isEnabled = false 和 func textChanged(_ sender: Any) { let tf = sender as! UITextField var resp : UIResponder! = tf while !(resp is UIAlertController) { resp = resp.next } let alert = resp as! UIAlertController alert.actions[1].isEnabled = (tf.text != "") } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |