[英]How to limit the numbers in the text field in Swift?
我希望用戶在文本字段中填寫0到60之間的數字。如何將數字字符數限制為2? 如何將最大數量限制為60? 以及如何取消文本字段上的“粘貼”選項,以便用戶無法粘貼字母?
我認為有兩種方法可以做到這一點。
實現UITextFieldDelegate
並實現函數
func textField(textField: UITextField,
shouldChangeCharactersInRange range: NSRange,
replacementString string: String) -> Bool {
var startString = ""
if textField.text != nil {
startString += textField.text!
}
startString += string
var limitNumber = startString.toInt()
if limitNumber > 60 {
return false
} else {
return true
}
}
在此每次檢查到目前為止輸入到UITextField
,轉換為Integer,如果新值高於60,則返回false。 (還向用戶顯示相應的錯誤)。
我認為更好的方法是提供UIPickerView
。
使用textfield的委托方法
其中10是文本字段的最大限制...
func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
let newLength = countElements(textField.text) + countElements(string) - range.length
return newLength <= 10 // Bool
}
如果countElements不能在最新版本的s wift中使用count而不是countElements。
要禁用復制和粘貼:
func canPerformAction(_ action: Selector, withSender sender: AnyObject?) -> Bool
{
if action == "paste:"
{return false}
return super.canPerformAction(action,withSender:sender)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.