假设我有一个文本字段,需要分钟和小时作为输入。现在我怎么能限制文本字段小时只能到24和分钟字段为60.我如何限制小时和秒的文本字段?
回答
文本字段的内容可以通过它的委托方法进行控制,包括询问是否为shouldChangeCharacters。如果用户输入的内容超出范围,则可以通过返回false
来纠正,甚至不允许。
但一个好的用户界面的做法是不让用户犯错误开始。这就是pickers的原因。
让您的ViewController类符合UITextFieldDelegate
协议,设置minuteField.delegate = self
和hourField.delegate = self
,然后实现shouldChangeCharactersIn range
功能,并检查输入数字和< = 2.可以使用didEndEditing
的字符数,检查数在你预期的范围内。
extension VC: UITextFieldDelegate {
func textFieldDidEndEditing(_ textField: UITextField) {
if textField == minuteField {
guard let minuteText = textField.text, let minutes = Int(minuteText) else {return}
if minutes < 0 || minutes > 60 {
textField.text = ""
}
} else if textField == hourField {
guard let hourText = textField.text, let hours = Int(hourText) else { return }
if hours < 0 || hours > 24 {
textField.text = ""
}
}
}
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
if string.isEmpty {
return true
} else if string.rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) != nil {
return false
} else if let numberOfChars = textField.text?.characters.count, numberOfChars >= 2 {
return false
} else {
return true
}
}
}
我觉得不太对,您必须首先计算替换后的文本*将被替换(stringByReplacingOccurancesInRange),然后测试该字符串的有效性。 – danh
@danh你说得对,我错了。测试我的代码并纠正它,现在它工作正常。 –
它更好 - 你正在测试添加的字符串是否包含数字。 OP旨在限制整个输入的数值。更彻底的方法是根据当前文本形成一个字符串,并且范围被改变......'textField.text.stringByReplacingCharactersInRange:withString'。 (请记住,用户可能会在字段中的任何地方粘贴文本)。测试候选输入的有效性(例如,如果它的intValue <60,或其他)。 – danh
- 1. 如何限制文本字段的大小?
- 2. 如何限制swt中文本字段的大小?
- 3. 如何限制文本字段的大小?
- 4. java如何限制文本字段?
- 5. iText限制文本字段中的文本大小
- 6. HTML文本字段限制
- 7. Rails文本字段大小限制错误 - 文本(255)
- 8. csv文件的字段大小限制
- 9. Sqlite字段大小限制
- 10. 如何将文本字段限制为一定量的字母?
- 11. 如何限制Swift中2个文本字段中的数字?
- 12. 富文本字段文件大小限制
- 13. 如何在特定的时间段和大小限制本机录音机?
- 14. 我如何限制一段时间
- 15. 如何限制文本区域大小?
- 16. jquery限制在文本字段中的文本复制安全
- 17. 如何在文本字段中设置字符限制..?
- 18. Tridion多行文本字段大小限制
- 19. j2me设置文本字段限制
- 20. 限制文本字段长度
- 21. 限制文本字段输入
- 22. 设置文本字段限制
- 23. 我如何限制元素的文本?
- 24. 如何限制AngularJS中的文本字段符号?
- 25. 如何限制在html文本字段中的数字的最大值和最小值
- 26. Sharepoint日期和时间字段限制
- 27. 关于限制文本字段上的文本的想法?
- 28. 的Javascript限制文本字段以正数和负数
- 29. 如何获得我的富文本字段的大小?
- 30. com.ctc.wstx.exc.WstxParsingException:文本大小限制
在'UITextFieldDelegate'方法'didEndEditing'方法添加了检查,并检查这些值 –
一些提示更....我知道这一点,但不能创建的想法如何检查 –
您只使用一个'的UITextField '或者其中两个? –