UITextField textFieldShouldChange不提供完整的字符串

时间:2013-01-30 07:07:46

标签: iphone ios uitextfield

我的代码是

 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
 NSLog(@"%@",petTypeTextFeild.text);

return YES;
}

当我输入“a”时,没有任何内容被打印出来 当我输入字母's''打印出来时 我想要全文。

有没有像textFinishChange这样的其他方法? 谢谢。

3 个答案:

答案 0 :(得分:3)

使用以下内容:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    NSLog(@"%@",newString);
    return YES;
}

答案 1 :(得分:1)

在那种方法中,你无法获得全文.. 如果您返回Yes,则只允许该特定字母,如果返回No,则不允许更改文本。 并使用此方法获取完整的文本。

- (void)textFieldDidEndEditing:(UITextField *)textField

答案 2 :(得分:1)

这是一个在textField实际更改其值之前调用的委托

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

多数民众赞成为什么你要获得旧价值,所以你应该使用这一行来获得确切的价值

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *str = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSLog(@"%@",str);
return YES;
}