我希望用户在文本框中填写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
的内容,将其转换为整数,如果新值高于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
}
禁用复制和粘贴:
func canPerformAction(_ action: Selector, withSender sender: AnyObject?) -> Bool
{
if action == "paste:"
{return false}
return super.canPerformAction(action,withSender:sender)
}