Iphone 文本长度等于检查长度

Iphone 文本长度等于检查长度,iphone,objective-c,ios,xcode,Iphone,Objective C,Ios,Xcode,我有一个简单的问题。我得到了一个文本字段,该字段被更新并填充了字符,当字符有长度时,我希望执行操作。例如,当长度为12(12个字符)时,我希望它做一些事情,当长度为24时,等等 我能做到: if (textfield.text.length == 12){ //do something } 希望有人能帮我:) 谢谢设置uitextfield委托并实现textField:shouldChangeCharactersRange:replacementString:方法。应用replacementS

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

我能做到:

if (textfield.text.length == 12){
//do something
}
希望有人能帮我:)


谢谢

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


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

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


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

您应该使用委托

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

您应该使用委托

- (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
    }
}
写下以下代码:

- (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......
       }
}
写下以下代码:

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

@法律是一个完全空洞的评论。试试什么?显然,无论你是否尝试过,如果<0/COD>中间的某个地方,“<代码>”将什么也不做。如果你只是想在代码中的某个点检查这个,那么是的。你可以像你展示的那样检查它。请注意,由于length是一种方法,因此它的编写方式通常类似于
if([textfield.text length]==12){
tough如果您希望文本字段变为12个字符时发生一些事情,请使用下面答案中的技巧。@Yar他的问题是If语句是否会像他所描述的那样起作用,在我看来,他知道从哪里获得更新。感谢各位,我以前没有寻找更新,但当我让它起作用时,我是。所以每一个一个真的帮了我大忙thanks@thelaws这是一个完全愚蠢的评论。试一试。很明显,不管你是否尝试过,如果<0/COD>在无关紧要的地方,一个<代码>将什么也不做。如果你只是想在代码中的某个点检查这个,那么是的。你可以像你所展示的那样检查它。注意它通常写得像<代码>f([textfield.text length]==12){尽管如此,因为length是一种方法。(不过,其中任何一种都可以。)如果您希望文本字段变为12个字符时发生一些事情,请使用下面答案中的技巧。@Yar他的问题是If语句是否会像他所描述的那样起作用,在我看来,他知道从哪里获得更新。感谢各位,我以前没有寻找更新,但当我让它起作用时,我是。所以每一个有人真的帮了我大忙,感谢那里的
if
语句会起作用,有一点需要考虑的是,它将应用于文本字段,就像当前字符添加到文本字段之前一样(假设
replacementString
是一个字符).if语句将起作用,其中一个考虑因素是它将应用于文本字段,与当前字符添加到文本字段之前一样(假设
replacementString
为一个字符)。+1用于在替换发生之前不检查文本长度。对于未来的读者:“公式”要计算替换后的文本长度,请执行以下操作:
NSInteger textLength=[textField.text length]+[string length]-range.length;
+1,用于在替换前不检查文本长度。对于将来的读者:“公式”替换后计算文本长度的方法如下:
NSInteger textLength=[textField.text length]+[string length]-range.length;