How to restrict UITextField to take only numbers in Swift?

后端 未结 30 905
难免孤独
难免孤独 2020-12-04 08:40

I want the user to only enter numeric values in a UITextField. On iPhone we can show the numeric keyboard, but on iPad the user can switch to any keyboard.

30条回答
  •  不思量自难忘°
    2020-12-04 09:19

    To allow only numbers and just one decimal operator, you can use this solution:

    func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
        let isNumber = NSCharacterSet.decimalDigitCharacterSet().isSupersetOfSet(NSCharacterSet(charactersInString: string))
    
        return isNumber || (string == NSNumberFormatter().decimalSeparator && textField.text?.containsString(string) == false)
    }
    

提交回复
热议问题