UIAlertController - 更改文本字段的大小并在它们之间添加空格

时间:2015-11-18 18:02:25

标签: ios swift ios8 uitextfield uialertcontroller

我的提醒如下:

Example of alert dialog

是否可以使输入更大并在它们之间增加空间?这是我的代码中的一个片段。我尝试更改第二个文本字段的let alert = UIAlertController(title: title, message: message, preferredStyle: .Alert) // Add the textfields alert.addTextFieldWithConfigurationHandler({ (textField) -> Void in textField.placeholder = "Vaše jméno" }) alert.addTextFieldWithConfigurationHandler({ (textField) -> Void in textField.placeholder = "Společné heslo" var oldFrame = textField.frame oldFrame.origin.y = 40 oldFrame.size.height = 60 textField.frame = oldFrame }) 属性,但没有帮助:

var span = document.getElementById("spanPBBestEst" + rowNum);

2 个答案:

答案 0 :(得分:10)

UIAlertController视图旨在简单且无法自定义。如果您制作自己的视图控制器,那么该视图属于您,您可以执行任何您喜欢的操作。

答案 1 :(得分:0)

  

警告:仅将此方法用作最后的选择!如果要微调警报控制器的外观,请使用自定义警报视图。 Take a look at this question了解详情。

作为一种骇人听闻的解决方案,您可以将两者之间的第三个文本字段用作分隔符并将其禁用。另外,您可以使用this mehtod为其设置自定义高度。

为避免使这个额外的文本字段成为焦点,请使用UITextFieldDelegate方法textFieldShouldReturn(_:)来使第二个文本字段成为焦点。

class AlertViewController: UITextFieldDelegate {
    [...]

    var firstTextField: UITextField!
    var secondTextField: UITextField!

    func setUpAlert() {
        [...]

        alert.addTextField { [weak self] textField in
            self?.firstTextField = textField
            textField.delegate = self
        }

        alert.addTextField { textField in
            textField.addConstraint(textField.heightAnchor.constraint(equalToConstant: 2))
            textField.isEnabled = false
        }

        alert.addTextField { [weak self] textField in
            self?.secondTextField = textField
        }

        [...]
    }

    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        if textField == firstTextField {
            secondTextField?.becomeFirstResponder()
        }

        return true
    }
}

结果:

screenshot of alert

不幸的是,您无法隐藏额外的文本字段,但至少可以为其提供背景:

textField.backgroundColor = .black

结果:

screenshot of alert - the text field used as a separator now has a background