如何在 swift 2.0 中的 UITextfield 中仅允许某些数字集

Kau*_*hna 3 uitextfield ios swift swift2

我正在UITextField其中获取月份数字作为输入。我成功地将 UITextField 中的字符数限制为 2。但我希望用户只输入其中的值1 to 12,仅此而已。这必须在用户键入数字(即 in )时同时完成func textField(textField: UITextField!, shouldChangeCharactersInRange range: NSRange, replacementString string: String!) -> Bool。如果我使用一个简单的if条件来检查每个字符并else部分返回 false,则文本字段将不允许我使用清除或重新键入任何其他字符。谁来帮帮我。

Aru*_*aya 5

将键盘类型设置为数字键盘

添加这个

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

    if let text = textField.text {

        let newStr = (text as NSString)
            .stringByReplacingCharactersInRange(range, withString: string)
        if newStr.isEmpty {
            return true
        }
        let intvalue = Int(newStr)
        return (intvalue >= 0 && intvalue <= 12)
    }
    return true
}
Run Code Online (Sandbox Code Playgroud)