【发布时间】:2020-06-04 15:28:59
【问题描述】:
我需要在 UIAlertController (Xcode 11.5) 中显示 4 个 UITextField。照常进行,但中心 UITextFields 出现无边框 view image 并且看起来不太好(我正在添加屏幕截图)。我试图设置 UITextField 边框样式,框架,但我无法正确设置。
@IBAction func addButtonPressed(_ sender: UIBarButtonItem) {
var dayOfWeekField = UITextField()
var inicioTextField = UITextField()
var terminoTextField = UITextField()
var numeroDeCirugias = UITextField()
let alert = UIAlertController(title: "Agregar Nuevo Bloque", message: "", preferredStyle: .alert)
let action = UIAlertAction(title: "Agregar", style: .default) { (action) in
let nuevoBloque = Bloques(context: self.context)
nuevoBloque.dia = dayOfWeekField.text!
nuevoBloque.inicio = inicioTextField.text!
nuevoBloque.termino = terminoTextField.text!
nuevoBloque.cirugias = Int16(numeroDeCirugias.text!)!
self.bloques.append(nuevoBloque)
self.saveBloques()
}
alert.addAction(action)
alert.addAction(UIAlertAction(title: "Cancelar", style: .destructive, handler: nil))
alert.addTextField { (field) in
dayOfWeekField = field
dayOfWeekField.placeholder = "dia de la semana"
dayOfWeekField.autocapitalizationType = .none
}
alert.addTextField { (field2) in
inicioTextField = field2
inicioTextField.placeholder = "Inicio Bloque (HH:MM)"
inicioTextField.keyboardType = .numbersAndPunctuation
}
alert.addTextField { (field3) in
terminoTextField = field3
terminoTextField.placeholder = "Término Bloque (HH:MM)"
terminoTextField.keyboardType = .numbersAndPunctuation
}
alert.addTextField { (field4) in
numeroDeCirugias = field4
numeroDeCirugias.placeholder = "Número Cirugías"
numeroDeCirugias.keyboardType = .numberPad
}
present(alert, animated: true, completion: nil)
}[enter image description here][1]
【问题讨论】:
-
在我看来,四个文本字段似乎太多了...使用另一个
UIViewController不是一个选项,也许以模态方式呈现?或者也许实现一个自定义的UIView,它将以一种模态的方式呈现,而不是使用默认的UIAlertController? -
你是对的@mmika1000。但IMO它看起来并不那么糟糕。我需要用户填写 4 个字段才能创建“手术日”。用户将是医生。不,更糟糕的是……外科医生。所以我也尽量保持简单。
标签: swift uitextfield uialertcontroller xcode11