如何限制HH:MM:SS Formatter中的textField最大值?

时间:2019-06-29 06:01:43

标签: ios swift uitextfield

我有1个UITexTField,我只允许在此“ mm:ss”格式中输入数字,为此,我使用了StringFormatter

这是我的代码,适用于上述格式。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {

    if textField.accessibilityHint == ExerciseParam.kTime {
        let lastText = (textField.text! as NSString).replacingCharacters(in: range, with: string) as String
        textField.text = lastText.format("nn:nn:nn", oldString: textField.text!)

        if lastText == "nn:nn:nn" {
            return false
        }
        else {

        }
        return false
    }
    else {
        return true
    }
}

我想做

我想要这样的东西。用户只能在 hh:mm:ss

中输入最大 60

有效输入==> ** ** 60:56:55

无效输入==> ** ** 66:56:80

如果我在文本字段中输入了无效的输入,则它会自动变为60:56:80,否则它将自动增加 MM HH 值,例如 60:57: 20

我该怎么做。请建议我。

谢谢

1 个答案:

答案 0 :(得分:0)

要限制键盘类型,可以将文本字段keyboardType设置为仅numberPad

<ipython-input-50-ae8dda81ef7f> in <module>()
      1 for i in range(5):
----> 2   image, mask = dataset[np.random.randint(0, len(dataset))]
      3   plot2x2Array(image, mask)

TypeError: 'NoneType' object is not iterable

这里是一个示例解决方案,如果您要在24小时制中支持“ HH ”,则需要添加更多实施。

textField.keyboardType = .numberPad