gpt4 book ai didi

ios - Swift UIAlertController 禁用没有 UITextField 的返回键

转载 作者:行者123 更新时间:2023-11-30 12:58:40 25 4
gpt4 key购买 nike

好吧,我查了很多关于 UIAlertController 如何工作的文档,并且我有一个相当独特的场景。我的应用程序被设计为与 HID 蓝牙扫描仪配合使用。当我使用时:

preferredStyle: UIAlertControllerStyle.Alert

在我生成一条警报后,表明我扫描的项目不正确。酷,警报正在发生,问题是如果我再次扫描(模拟键盘输入),返回键将被发送到警报,并且警报正在运行关闭操作。

如果我使用:

preferredStyle: UIAlertControllerStyle.ActionSheet

然后,警报将停留在应有的位置并忽略扫描,而警报窗口将按照我想要的方式打开。

所以我的问题是,如何捕获返回键并防止警报调用关闭操作?我对 swift 有点陌生,我感觉答案很简单,但我尝试了六种方法,但都不起作用。

如果有一个设置可以阻止所有用户输入警报窗口或任何解决方案,我完全支持任何方法。我只是不想使用 ActionSheet,更喜欢使用 iOS 警报而不是创建自己的屏幕。如果这是不可能的,我确信我可以构建自己的“警报”窗口。

代码,我从我制作的一个简单的警报类中调用。

import UIKit

class Alerts {

var controller: UIViewController
var message: String
var title: String

init?(title: String, message: String, controller: UIViewController){
if title.isEmpty || message.isEmpty {
return nil
}

self.title = title
self.message = message
self.controller = controller
}

func save_alert(input_field:UITextField, callable: (Bool)->Void ){
let action = UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default) {
UIAlertAction in
callable(false)
input_field.enabled = true
input_field.becomeFirstResponder()
print("DISMISS CALLED")
}
let alert = UIAlertController(title: self.title,message:self.message,preferredStyle: UIAlertControllerStyle.Alert)

alert.addAction(action)

self.controller.presentViewController(alert,animated:true, completion: nil)
}
}

最佳答案

尝试这样的事情。

func save_alert(input_field:UITextField, callable: (Bool)->Void ){
let action = UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default) {
UIAlertAction in
callable(false)
input_field.enabled = true
input_field.becomeFirstResponder()
print("DISMISS CALLED")
showAlert()
}
showAlert()
}

func showAlert() {
let alert = UIAlertController(title: self.title,message:self.message,preferredStyle: UIAlertControllerStyle.Alert)

alert.addAction(action)

self.controller.presentViewController(alert,animated:true, completion: nil)
}

关于ios - Swift UIAlertController 禁用没有 UITextField 的返回键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40110051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com