添加Textfield MDCAlertController IOS

时间:2019-05-03 12:02:03

标签: swift alertdialog uialertcontroller material-components-ios

在Uialertcontroller中没有类似于addtextfield方法的方法。我尚未找到有关如何自定义MDCAlertControllers的任何示例。有人有主意吗?

2 个答案:

答案 0 :(得分:2)

我认为这是不可能的。 docs说:

  

MDCAlertController类旨在按原样使用,而不是   支持子类化。此类的视图层次结构是私有的,   不得修改。

答案 1 :(得分:1)

现在可以通过使用accessoryView来实现。
只需将其设置为您的自定义视图,并将警报消息设置为空白即可。

alertController.accessoryView = myCustomView


代码示例(使用SnapKit进行布局)

let title = "My title"        
let alertController = MDCAlertController(title: title, message: "")
let confirmAction = MDCAlertAction(title:"Confirm") { [weak self] _ in
    //your action here
}
let cancelAction = MDCAlertAction(title:"Cancel")

let width = UIScreen.main.bounds.width * 0.91
let testView = UIView()
let button = UIButton()
button.setTitle("Test", for: .normal)
testView.addSubview(button)
button.snp.makeConstraints { (make) in
    make.center.equalToSuperview()
}
testView.backgroundColor = .blue //just to show where the view is
testView.snp.makeConstraints { (make) in
    make.width.equalTo(width)
    make.height.equalTo(100)
}

alertController.accessoryView = testView
alertController.addAction(confirmAction)
alertController.addAction(cancelAction)
alertController.defaultTheming()

present(alertController, animated:true)

上述代码的结果

enter image description here