加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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 != "")
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读