如何在 Swift 中限制 UITextField 仅获取数字?


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

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

更新时间: 30-07-2019

6 千+ 次浏览

开启您的 职业生涯

完成课程获得认证

开始
广告