一尘不染

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

swift

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


阅读 325

收藏
2020-07-07

共1个答案

一尘不染

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

加上这个

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