Please note, this is a STATIC archive of website www.tutorialspoint.com from 11 May 2019, cach3.com does not collect or store any user information, there is no "phishing" involved.
Tutorialspoint

1 Answer
karthikeya Boyini

In iOS apps sometimes we need to restrict our text field to take only numbers as an input, this can be done in several ways, let’s see some of them.

Method 1: Changing the Text Field Type from storyboard.

  • Select the text field that you want to restrict to numeric input.
  • Go to its attribute inspector.
  • Select the keyboard type and choose number pad from there.

Method 2: Programmatically limiting inputs to number.

  • Select the text field
  • Create its outlet in the view controller.
  • Conform the view controller to UITextFieldDelegate
  • Set the text field’s delegate
  • Add the following function
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
   if let x = string.rangeOfCharacter(from: NSCharacterSet.decimalDigits) {
      return true
   } else {
      return false
   }
}

Our whole example class looks like

import UIKit
class ViewController: UIViewController, UITextFieldDelegate {
   @IBOutlet weak var tf: UITextField!
      override func viewDidLoad() {
         tf.delegate = self
         super.viewDidLoad()
      }
      func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
         if let x = string.rangeOfCharacter(from: NSCharacterSet.decimalDigits) {
            return true
         } else {
         return false
      }
   }
}

This will create a text field that can only take digits as input and no other character.

Advertisements

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.