Ios 如何在Swift中限制文本字段中的数字?

Ios 如何在Swift中限制文本字段中的数字?,ios,iphone,ipad,swift,Ios,Iphone,Ipad,Swift,我希望用户在文本字段中填写一个从0到60的数字。 如何将字符数限制为2? 如何将最大数量限制为60? 以及如何取消文本字段上的“粘贴”选项,以便用户无法粘贴字母?我认为有两种方法可以做到这一点 执行UITextFieldDelegate并执行功能 func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String)

我希望用户在文本字段中填写一个从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 textField(textField:UITextField,shouldChangeCharactersRange:NSRange,replacementString:string)->Bool{
让newLength=countElements(textField.text)+countElements(string)-range.length

返回newLength以禁用复制和粘贴:

func canPerformAction(_ action: Selector, withSender sender: AnyObject?) -> Bool
{
    if action == "paste:"
        {return false}
    return super.canPerformAction(action,withSender:sender)
}

这是用于禁用复制/粘贴:@HoaParis这是在Objective-C中,你能用swift提供吗?我的代码更喜欢文本字段,但你能继续代码吗?我没有得到在你的代码之后需要做的事情。这是答案!太好了!如果我有两个文本字段,你知道我需要做什么吗?假设你有两个文本字段,ageTextField和heightTextFie函数中收到的第一个参数是位于顶部的textField,您将检查(textField==ageTextField)并执行代码。