2012-05-27 61 views
0

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

我可以这样做:

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

希望有人能帮助我:)

感谢

+3

你为什么不试试看? – thelaws

+1

@thelaws这是一个完全没有意义的评论。试试什么?很明显,无论你是否尝试过,在某个地方的一个“if”都无能为力。 –

+1

如果你只是想在你的代码中的某个点检查这个,那么是的。您可以像显示一样检查它。请注意,它通常写成'if([textfield.text length] == 12){'虽然长度是一种方法。 (任何一个都可以工作。)如果你希望**发生**的**字符**变成** 12个字符,则在下面的答案中使用该技巧。 – lnafziger

回答

1

你应该使用委托

- (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 
    } 
} 
+2

考虑到它被应用到文本字段,就像当前字符被添加到文本字段之前一样(假设'replacementString'是一个字符)。 –

2

建立一个UITextFieldDelegate并实现textField:shouldChangeCharactersInRange:replacementString:方法。计算一旦replacementString被应用后文本字段将包含的内容,并且如果它符合您要查找的内容,请执行您所需的操作。

请注意,这也被称为删除和粘贴事件。

+0

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

1

写下这段代码:

- (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...... 
     } 
}