【问题标题】:Text Length equal to checking文本长度等于检查
【发布时间】:2012-05-27 15:17:11
【问题描述】:

有一个简单的问题。我得到了一个文本字段,该字段得到更新并填充了我想在它们有长度时执行操作的字符。例如,当长度为 12(12 个字符)时,我希望它做某事,当长度为 24 时,等等。

我可以这样做吗:

if (textfield.text.length == 12){
//do something
}

希望有人可以帮助我:)

谢谢

【问题讨论】:

  • @thelaws 这是一个完全愚蠢的评论。试试什么?显然,无论您是否尝试,if 在茫茫荒野中都无济于事。
  • 如果您只是想在代码中的某个位置检查这一点,那么可以。你可以像你展示的那样检查它。请注意,它通常写成if ([textfield.text length] == 12) {,尽管因为长度是一种方法。 (不过,任何一个都可以。)如果您希望响应文本字段变成 12个字符,请使用以下答案中的技术。
  • @Yar 他的问题是 if 语句是否会像他描述的那样起作用,在我看来他知道从哪里获得更新。
  • 谢谢大家,我之前没有在寻找更新,但当我让它工作时,我就是。所以大家真的帮了我谢谢

标签: iphone objective-c ios xcode


【解决方案1】:

设置UITextFieldDelegate 并实现textField:shouldChangeCharactersInRange:replacementString: 方法。计算应用 replacementString 后文本字段将包含的内容,如果它与您要查找的内容匹配,请执行您需要的操作。

请注意,删除和粘贴事件也会调用它。

【讨论】:

  • +1 表示在替换发生之前不检查文本的长度。对于未来的读者:替换后计算文本长度的“公式”如下所示:NSInteger textLength = [textField.text length] + [string length] - range.length;
【解决方案2】:

你应该使用委托

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

如果您在其中创建了自己,请使用

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
    if (textfield.text.length == 12){
    //do something
    }
}

【讨论】:

  • if 语句将起作用,其中一个考虑是它被应用于文本字段,就像在当前字符添加到它之前一样(假设 replacementString 是一个字符)。
【解决方案3】:

写下这段代码:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string 
{
    if (textfield.text.length == 12)
       {
           condition......
       }
    else if (textfield.text.length == 24)
       {
           condition......
       }
    else
       {
           condition......
       }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多