23
votes

I have a UITextField and I ask the user to input some data using the number pad.

  • Is the data that comes out a string or an integer?
  • How do I multiply the number they input by 10 then output it to a label?
3

3 Answers

36
votes

Just use the text attribute of the UITextField to get the value (which is a String).

Then, use the toInt() method (which returns an optional) to convert that to an Integer, so that you can perform mathematical operations.

@IBOutlet weak var field: UITextField!
@IBOutlet weak var label: UILabel!

@IBAction func getVal () {
     var text: String = field.text
     var multipliedNum: Int = 0

     if let num = text.toInt() {
         multipliedNum = num * 10
     }

     label.text = "\(multipliedNum)"
}
5
votes

Xcode 9 with Swift

//Get reference of UITextView
@IBOutlet weak var inputMealName: UITextField! 

//Get value of input from UITextView in variable
let name: String = inputMealName.text!

//Use input value eg. show alert
  let alert = UIAlertController(title: "Alert", message: name, preferredStyle: UIAlertControllerStyle.alert)

    alert.addAction(UIAlertAction(title: "Click", style: UIAlertActionStyle.default, handler: nil))
        self.present(alert, animated: true, completion: nil)
-1
votes

You can get the string via the UITextField attribute.

  • the data comes out a string. You can use string methods(intValue , doubleValue....etc) convert string value to a number.

  • when you get the number , you can set the label output via its text attribute.