【发布时间】:2019-03-28 08:18:05
【问题描述】:
我有用于 Celectial 导航计算的应用程序,我已将代码 textField.text 转换为 Double,但有时如果用户输入“1.0”等字段和“1”等字段,应用程序会崩溃,导致应用程序崩溃,因为可以不要扣除 Int 和 Double,以确保我想限制用户只输入十进制数字“1.0”。对我来说最好的方法是编写类似如果用户在按下完成按钮后自动输入例如“1”,添加“.0”以获得 1.0?
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let allowedCharacters = "-1234567890."
let allowedCharacterSet = CharacterSet(charactersIn: allowedCharacters)
let typedCharactersSet = CharacterSet(charactersIn: string)
return allowedCharacterSet.isSuperset(of: typedCharactersSet)
}
func TextField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
guard let text = latDegTextField.text else { return true }
let count = text.count + string.count - range.length
return count == 2
}
【问题讨论】:
标签: ios swift validation uitextfield decimal