如何在 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 } } }
这将创建一个只能以数字为输入的文本字段,不能输入其他字符。
广告