当前位置: 首页 > 面试题库 >

防止解雇UIAlertController

石臻
2023-03-14
问题内容

我增加了UITextField一个UIAlertController,这似乎为AlertView。在关闭之前UIAlertController,我想验证的输入UITextField。基于验证,我想关闭UIAlertController还是不关闭。但是我不知道如何防止UIAlertController按下按钮时的关闭动作。有没有人解决了这个问题或从哪里开始的任何想法?我去了谷歌,但没有运气:/谢谢!


问题答案:

您是正确的:如果用户可以点击警报中的按钮,则警报将被关闭。因此,您要防止用户点击按钮!只需禁用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 != "")
}

编辑 这是上述代码的当前(Swift 3.0.1及更高版本)版本:

alert.addTextField { tf in
    tf.addTarget(self, action: #selector(self.textChanged), for: .editingChanged)
}

alert.actions[1].isEnabled = false

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


 类似资料:
  • 问题内容: 在WWDC 2019上,Apple宣布了一种新的“卡式”外观模态演示,并带有内置手势,可通过向下滑动卡来消除模态视图控制器。他们还引入了新属性,以便您可以选择拒绝这种解雇行为。 但是到目前为止,我还没有找到在SwiftUI中模拟这种行为的方法。使用,不,据我所知,让你以同样的方式禁止解雇手势。我还尝试将模式视图控制器放在内 ,但这似乎也无济于事: 即使出现了,我仍然可以向下滑动以消除视

  • 我正在尝试在未来的预定时间生成警报。下面是代码 主要活动。Java语言 警报eceiever.java content\u main。xml 舱单 我试图在一分钟后生成警报,但不幸的是什么都没有发生。我在这里做错了什么?此外,即使在手机重启/关机然后打开后,我如何确保我的日程安排仍然有效?

  • 我对流口水还很陌生,可能正在做一些非常愚蠢的事情。问题是,出于某种原因,我的口水规则没有被解雇。使用的drools版本为5.4 如果有帮助,当我转换回并使用执行方法来触发规则时,规则会触发。但是,我需要使用来过滤规则,并且我了解还不支持议程过滤器。作为第一步,我只是将会话翻转到,插入事实并触发所有规则。 不得不谦恭地说,在过去几天里,我在这件事上伤了头。太糟糕了,文档对drools来说不是那么友好

  • 下面关于 Employer 和 Employee 的关系模型使用了一个真实的实体类(Employment)来表述,这是因为对于相同的雇员和雇主可能会有多个雇佣时间段。对于金额和雇员姓名,用 Components 建模。 映射文件可能是这样: <hibernate-mapping> <class name="Employer" table="employers">

  • 问题内容: 在斯威夫特,双方并完成相同的任务- 对用户隐藏的观点和任何文本字段,用它去聚焦键盘。我知道前者特定于特定字段,而后者涵盖了整个视图,但是除了希望针对特定的文本字段之外,什么时候相对于另一文本字段是首选/推荐的? 问题答案: 当您确切知道哪个文本字段是第一响应者并且想辞职其第一响应者状态时,可以使用该方法。这可能比其他方法要有效一些,但是如果您要执行一些操作(例如创建自定义控件),那么这

  • 1)我的plist配置提供背景模式: 2) 在中,我有: 3) 我在委托中声明了协议。 4)我实现了以下方法,但它永远不会被触发。(只有当我用“XCode-”模拟获取时才有效 为什么?这是DP5测试错误吗?我应该雷达这个吗?