【问题标题】:swift remove TextField borders快速删除 TextField 边框
【发布时间】:2018-11-30 14:48:25
【问题描述】:

我在警报中有一个文本字段。 我已经像这样配置了它的borderStyle:

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()

【问题讨论】:

  • 检查你的代码中是否有textfield.layer.borderColor = UIColor.red.cgColor
  • 不,我没有那种东西……
  • 你能把所有的 AlertView 相关代码放在你的问题中吗?
  • 是的没问题,让我两秒
  • Apple 的控件通常不是很灵活,您可以选择编写自己的版本、使用私有 API 修改它或通过子视图进行修改(这两种方法都可能导致您的应用程序被拒绝或最终中断)或者只是按原样使用它。我建议你保持原样。

标签: ios swift alert textfield


【解决方案1】:

使用AlertViewControlleropen var textFields: [UITextField]? { get }这个属性,经过可视化调试后发现需要去掉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
        }
    }
}

最终应该是什么样子:

【讨论】:

  • @Placard 我正在测试,我会在确认结果后立即发布一些内容
猜你喜欢
  • 2014-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
相关资源
最近更新 更多