How to add a TextField to UIAlertView in Swift

Apple Kid picture Apple Kid · Jun 7, 2014 · Viewed 60.5k times · Source

I have this code, but I dont know how to show a textfield inside the UIAlertView.

var altMessage = UIAlertController(title: "Warning", message: "This is Alert Message", preferredStyle: UIAlertControllerStyle.Alert)
altMessage.addAction(UIAlertAction(title: "Done", style: UIAlertActionStyle.Default, handler: nil))
self.presentViewController(altMessage, animated: true, completion: nil)

I have this code for textfield , how can I show this in UIAlerView

var my:UITextField = UITextField(frame: CGRectMake(0, 0, 10, 10))

I also tried this code:

var alert = UIAlertView()
alert.title = "Enter Input"
alert.addButtonWithTitle("Done")
alert.alertViewStyle = UIAlertViewStyle.PlainTextInput
alert.addButtonWithTitle("Cancel")
alert.show()

When I specify the AlertStyle plainText, it shows a TextField with default placeholder, "Login".. I want to change that, I want to show a Keyboard of Decimal Pad. I also want to handle the value the user enters into the textField. Can someone help me with this?

Answer

David Berry picture David Berry · Jun 7, 2014

You can access the textfield with:

let textField = alert.textFieldAtIndex(0)

Then to change the placeholder text:

textField.placeholder = "Foo!"

And the keyboard type:

textField.keyboardType = ...