Ios 快速删除文本字段边框
我在警报中有一个文本字段。 我已将其边框样式配置为:Ios 快速删除文本字段边框,ios,swift,alert,textfield,Ios,Swift,Alert,Textfield,我在警报中有一个文本字段。 我已将其边框样式配置为: textField.borderStyle = .roundedRect 但在第一个矩形边框的周围还有另一个矩形边框,如您所见: 我想通过代码删除它,但我找不到任何选项或执行方法 以下是警报代码: private func presentUsernameAlert() { let alert = UIAlertController(title: nil, message: "Alors ?", preferredStyle: .a
textField.borderStyle = .roundedRect
但在第一个矩形边框的周围还有另一个矩形边框,如您所见:
我想通过代码删除它,但我找不到任何选项或执行方法
以下是警报代码:
private func presentUsernameAlert() {
let alert = UIAlertController(title: nil, message: "Alors ?", preferredStyle: .alert)
alert.addTextField(configurationHandler: newUsername)
alert.addAction(UIAlertAction(title: "Annuler", style: .default, handler: nil))
alert.addAction(UIAlertAction(title: "Confirmer", style: .default, handler: nil))
present(alert, animated: true, completion: nil)
}
private func newUsername(textField: UITextField) {
usernameTextField = textField
usernameTextField?.borderStyle = .roundedRect
usernameTextField?.keyboardAppearance = .dark
usernameTextField?.placeholder = "Nouveau pseudo"
}
然后我使用此属性调用
presentUsernameAlert()
openvar textFields:[UITextField]?{get}
的AlertViewController
,经过可视化调试后,我发现需要删除0中的superView.superView.subView
,并更改TextField.superView
背景以清除并修复该问题
尝试以下代码:
private func presentUsernameAlert() {
let alert = UIAlertController(title: nil, message: "Alors ?", preferredStyle: .alert)
alert.addTextField(configurationHandler: newUsername)
alert.addAction(UIAlertAction(title: "Annuler", style: .default, handler: nil))
alert.addAction(UIAlertAction(title: "Confirmer", style: .default, handler: nil))
present(alert, animated: true) {
}
if let textFields = alert.textFields {
if textFields.count > 0{
textFields[0].superview!.superview!.subviews[0].removeFromSuperview()
textFields[0].superview!.backgroundColor = UIColor.clear
}
}
}
它最终应该是什么样子:
private func presentUsernameAlert() {
let alert = UIAlertController(title: nil, message: "Alors ?", preferredStyle: .alert)
alert.addTextField(configurationHandler: newUsername)
alert.addAction(UIAlertAction(title: "Annuler", style: .default, handler: nil))
alert.addAction(UIAlertAction(title: "Confirmer", style: .default, handler: nil))
present(alert, animated: true) {
}
if let textFields = alert.textFields {
if textFields.count > 0{
textFields[0].superview!.superview!.subviews[0].removeFromSuperview()
textFields[0].superview!.backgroundColor = UIColor.clear
}
}
}
检查您的代码中是否有
textfield.layer.borderColor=UIColor.red.cgColor
不,我没有类似的东西……您能把所有与AlertView相关的代码都放在您的问题中吗?是的,没问题,让我说两个secApple的控件通常不是很灵活,您可以选择编写自己的版本,使用私有API或通过查看子视图(两者都可能导致应用程序被拒绝或最终崩溃)或直接使用它来修改它。我建议你们保持原样。@我正在测试的标语牌我会在确认结果后尽快发布一些东西