当前位置:  开发笔记 > IOS > 正文

限制Swift 2中多个UITextField的长度

如何解决《限制Swift2中多个UITextField的长度》经验,为你挑选了1个好方法。

一个限制一个长度的解决方案TextField但是功能count已经更新,也是count()功能,所以我不明白如何使用这个:

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    let newLength = count(textField.text.utf16) + count(string.utf16) - range.length
    return newLength <= 10 // Bool
}

如何更新这个以多个工作TextField,我想我必须说

textField = thisTextField.text...

hannad.. 5

shouldChangeCharactersInRange执行以下操作(引自文档)

询问代理是否应更改指定的文本.

您添加的此方法代码会检查它是否超出您的限制(在您的示例中,它是10)并返回false,这意味着textField不应更改值.如果它没有超过限制,它将返回true,textField将更改值.

要为多个textField执行此操作,您需要具有多个textField的出口,然后此方法中的简单if语句将完成此任务.

@IBOutlet weak var textfield1: UITextField!
@IBOutlet weak var textfield2: UITextField!

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    let newLength = textField.text.characters.count + string.characters.count - range.length
    if textField == textField1 {
        return newLength <= 10 // Bool
    } else if textField == textField2 {
        return newLength <= 15 // Bool
    }

    return true
}

为了能够在代码中使用上述方法UIViewController,包含这些textFields的方法需要实现UITextFieldDelegate协议,然后将UITextField's delegate属性设置为UIViewController.

还有关于count方法.它已经多次更新.要计算字符串的字符数:

在Swift1.2之前- > countElements(string)
Swift1.2 - > count(string)
Swift2 - > string.characters.count



1> hannad..:

shouldChangeCharactersInRange执行以下操作(引自文档)

询问代理是否应更改指定的文本.

您添加的此方法代码会检查它是否超出您的限制(在您的示例中,它是10)并返回false,这意味着textField不应更改值.如果它没有超过限制,它将返回true,textField将更改值.

要为多个textField执行此操作,您需要具有多个textField的出口,然后此方法中的简单if语句将完成此任务.

@IBOutlet weak var textfield1: UITextField!
@IBOutlet weak var textfield2: UITextField!

func textField(textField: UITextField, shouldChangeCharactersInRange range: NSRange, replacementString string: String) -> Bool {
    let newLength = textField.text.characters.count + string.characters.count - range.length
    if textField == textField1 {
        return newLength <= 10 // Bool
    } else if textField == textField2 {
        return newLength <= 15 // Bool
    }

    return true
}

为了能够在代码中使用上述方法UIViewController,包含这些textFields的方法需要实现UITextFieldDelegate协议,然后将UITextField's delegate属性设置为UIViewController.

还有关于count方法.它已经多次更新.要计算字符串的字符数:

在Swift1.2之前- > countElements(string)
Swift1.2 - > count(string)
Swift2 - > string.characters.count

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有