如何限制UITextField在Swift中只接受数字?

在iOS应用中,有时我们需要将文本字段限制为仅将数字作为输入,这可以通过多种方式完成,下面让我们来看一些。

方法1:从情节提要中更改文本字段类型。

  • 选择要限制为数字输入的文本字段。

  • 转到其属性检查器。

  • 选择键盘类型,然后从中选择数字键盘。

方法2:以编程方式将输入限制为数字。

  • 选择文本字段

  • 在视图控制器中创建其出口。

  • 使视图控制器符合UITextFieldDelegate

  • 设置文本字段的委托

  • 添加以下功能

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
   if let x = string.rangeOfCharacter(from: NSCharacterSet.decimalDigits) {
      return true
   } else {
      return false
   }
}

我们整个示例类看起来像

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

这将创建一个文本字段,该文本字段只能以数字作为输入,不能包含其他字符。