gpt4 book ai didi

ios - 限制 Swift 2 中多个 UITextField 的长度

转载 作者:搜寻专家 更新时间:2023-11-01 05:57:50 25 4
gpt4 key购买 nike

限制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...

最佳答案

shouldChangeCharactersInRange 执行以下操作(引自 docs)

Asks the delegate if the specified text should be changed.

您添加到此方法的代码会检查它是否超过您的限制(在您的示例中为 10)并返回 false,这意味着 textField 不应更改值。如果没有超过限制,它将返回 true,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 需要实现 UITextFieldDelegate 协议(protocol),然后通过设置 UITextField 的委托(delegate)属性是 UIViewController

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

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

关于ios - 限制 Swift 2 中多个 UITextField 的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34412115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com