【问题标题】:How to set the height of UITextField in the UIAlertController? [duplicate]如何在 UIAlertController 中设置 UITextField 的高度? [复制]
【发布时间】:2018-05-17 08:09:02
【问题描述】:

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

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左右。这里出了什么问题?

【问题讨论】:

标签: ios swift uitextfield uialertcontroller


【解决方案1】:

您已添加以下代码:-

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

希望对你有帮助。

重复

【讨论】:

    【解决方案2】:
    let alertController = UIAlertController(title: "Write Comment", message: "Tell us why you are not satisfied", preferredStyle: .alert)
            alertController.addTextField { (textField:UITextField) in
    
                let heightConstraint = NSLayoutConstraint(item: textField, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: yourHeightValue)
                textField.placeholder = ""
                textField.addConstraint(heightConstraint)
                textField.keyboardType = .asciiCapable
            }
            alertController.addAction(UIAlertAction(title: "Send", style: .default, handler: { (alert) in
    
                let commentDefect = alertController.textFields?.first?.text ?? ""
                self.sendComment(defectID: defectID, comment: commentDefect)
            }))
            alertController.addAction(UIAlertAction(title: "Cancel", style: .cancel, handler: nil))
            alertController.view.tintColor = UIColor(red: 0.0/255.0, green: 129.9/255.0, blue: 58.0/255.0, alpha: 1.0)
            self.present(alertController, animated: true, completion: nil)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-28
      • 2015-01-02
      • 1970-01-01
      • 2014-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-07
      相关资源
      最近更新 更多