假設我有一個文本字段,需要分鐘和小時作爲輸入。現在我怎麼能限制文本字段小時只能到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 '或者其中兩個? –