首页 > 解决方案 > 如何在 UIAlertController 中设置 UITextField 的高度?

问题描述

我知道通过使用此代码以编程方式设置常规文本字段的高度

textField.frame.size.height = 60

但是,如果我将此代码实现到我的文本字段中UIAlertController,它就不起作用。我也尝试将键盘更改为支持 ASCII,但在我运行应用程序后它不会更改键盘。好像我错过了什么

这是我的警报控制器的代码

let alertController = UIAlertController(title: "Write Comment", message: "Tell us why you are not satisfied", preferredStyle: .alert)

alertController.addAction(UIAlertAction(title: "Send", style: .default, handler: { alert -> Void in
    let textField = alertController.textFields![0] as UITextField
    textField.frame.size.height = 60
    textField.keyboardType = .asciiCapable

    let commentDefect = textField.text ?? ""
    self.sendComment(defectID: defectID, comment: commentDefect)

}))

alertController.view.tintColor = UIColor(red: 0/255, green: 129/255, blue: 58/255, alpha: 1)
alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
alertController.addTextField(configurationHandler: {(textField : UITextField!) -> Void in
    textField.placeholder = ""
})

self.present(alertController, animated: true, completion: nil)

结果如下: 在此处输入图像描述

身高好像还在17左右。这里出了什么问题?

标签: iosswiftuitextfielduialertcontroller

解决方案


您已添加以下代码:-

alertController.addTextField(configurationHandler: {(textField : UITextField!) -> Void in
        textField.placeholder = ""
        let heightConstraint = NSLayoutConstraint(item: textField, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 120)
        textField.addConstraint(heightConstraint)
}) 

希望对您有所帮助。

这是重复的


推荐阅读