限制两个特定文本字段中的字符数

Posted

技术标签:

【中文标题】限制两个特定文本字段中的字符数【英文标题】:Limit the number of characters in two specific textfields 【发布时间】:2021-05-18 16:37:11 【问题描述】:

我正在尝试(总共有四个)。我能够成功地为一个文本字段做到这一点,但不能同时做到这两个。两者的最大字符数限制应为 36。谁能帮我这个?以下是我到目前为止所拥有的。注意:我是新手程序员,所以如果这个问题有明显的答案,请原谅我。谢谢。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 
    let maxLength = 36
    let currentString: NSString = (fullNameTextField.text ?? "") as NSString
    
    let currentString2: NSString = (occupationTextField.text ?? "") as NSString
    
    let newString: NSString =
        currentString.replacingCharacters(in: range, with: string) as NSString
    return newString.length <= maxLength

【问题讨论】:

【参考方案1】:

不要从fullNameTextFieldoccupationTextField 获取文本,而是使用textField 参数。

但如果您只想限制fullNameTextFieldoccupationTextField 中的字符数,请添加if 语句。

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool 
    
    /// check the textField
    if textField == fullNameTextField || textField == occupationTextField 
        let maxLength = 36
        let currentString: NSString = (textField.text ?? "") as NSString
        let newString: NSString = currentString.replacingCharacters(in: range, with: string) as NSString
        return newString.length <= maxLength
    
    
    /// don't limit characters if textField is NOT `fullNameTextField` or `occupationTextField`
    return true

【讨论】:

谢谢,但我不想限制其他 2 个文本字段中的字符。总共有四个,我试图将字符限制在其中的两个中。 @safetotry 刚刚在您发表评论时意识到这一点。已编辑。 啊,我明白了。感谢您的帮助!

以上是关于限制两个特定文本字段中的字符数的主要内容,如果未能解决你的问题,请参考以下文章

限制表单输入文本字段中允许的字符数

使用文档侦听器限制文本字段中的字符

在 Swift 中创建 UITextFieldDelegate 以限制字符数

Objective-C如何限制文本字段在2次输入后只允许特定字符

如何限制要输入的文本框中的任何特定字符。我只想限制 ^ 和 %

限制文本输入字段中的字符集