2013-01-19 44 views
-1

我有一个UItextfield自动根据预先定义的字符串完成其值。如果第一个字符串currentString中包含多个单词,则结果显示的最后一个字符为currentString附加到字符串的最后一个字母ByReplacingCharactersInRange

示例代码

所以当输入No,该UITextField小号得到的文本变成Note todayt(第二个字添加到字符串的最后一个字母)

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

NSString *currentString = [_txt.text stringByReplacingCharactersInRange:range withString:string]; 


NSString *currentString = [_txt.text stringByReplacingCharactersInRange:range withString:string]; 
if ([currentString isEqualToString:@"No t"]) { 
    textField.text = @"Note today"; 

有没有一种方法可以让我避免此行为?

我已经试过

if(_txt.text.length>1) 
    { 
     _txt.text =[textField.text substringToIndex:[textField.text length] - 1]; 

    } 

if(_txt.text.length>1) 
    { 
     NSString *text2; 

     NSString *currentString = textField.text; 
     NSString *newString = [text2 substringToIndex:[text2 length]-1]; 
     textField.text=newString; 
    } 

    return NO; 
} 
return YES; 

} 
+0

会向下选民关心解释为什么?如果你不能提出问题,这有什么意义呢? – JSA986

回答

2

我敢打赌,你返回YES,这将导致 “T” 即可输入。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    NSString *currentString = [_txt.text stringByReplacingCharactersInRange:range withString:string]; 

    if ([currentString isEqualToString:@"No t"]) { 
    textField.text = @"Note today"; 
    return NO; 
    } 

    return YES; 
} 
+0

而我愿意相信你只能赢得这个赌注;) – Mecki

+0

正确,即时返回是的,你的答案意味着我不应该这样做? – JSA986

+0

@ JSA986该方法询问您“我应该让用户键入T?”。如果您更改文本并返回YES,文本字段会让用户输入T,然后最终生成一个额外的T. –

0

好整理这一点,我添加了一个if语句来删除多余的字符

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

NSString *currentString = [_txt.text stringByReplacingCharactersInRange:range withString:string]; 


NSString *currentString = [_txt.text stringByReplacingCharactersInRange:range withString:string]; 
if ([currentString isEqualToString:@"No t"]) { 
textField.text = @"Note today"; 

    } 


if(_txt.text.length>=4) 

    { 
     NSString *text; 

     text =[[textField text] stringByAppendingString:string]; 
     NSString *newString = [text substringToIndex:[text length]-1]; 

     textField.text=newString; 


    return NO; 

    } 
    return YES; 
} 
相关问题