无法使用shouldChangeCharacterInRange方法在UITextField中获取正确的值

时间:2012-05-04 13:02:47

标签: iphone objective-c uitextfield

我有一个来自我的单元格的详细视图,就在那里。我有2个UITextField,在一个i类型值中,如100,而point是我希望另一个UITextField显示“a + b”值。例如。在我的“a”文本字段中,我有一个值45,当我输入“b”文本字段时,它假设动态变化,当我输入1时它应该是46,当我输入10时,它应该是55,100 - 145但我的问题是,它变成了“旧”值,所以当我输入10时它只添加1,当我输入100时它会加10。当我最后点击屏幕上的任何地方,键盘消失然后它得到正确的值,但它假设动态变化。有一段我的代码:

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


    NSString *calculator=[calculateField text];
    int modifyer = [calculator intValue];


    intProtein = [protein intValue];
    int prot = [protein intValue];


    self.intProteinResult = prot+modifyer;


    [proteinTextField setText:[NSString stringWithFormat:@"%i", intProteinResult]];


    return YES;
}

是的,我确实尝试过与我类似的搜索主题,并尝试了其他方法stringByReplacingCharactersInRange:range withString:string。但我无法弄清楚如何使用它。请帮助,任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

使用此代码将值分配给计算器变量:

NSString* calculator = [[calculateField text] stringByReplacingCharactersInRange: range withString: string];

无论替换或编辑哪个字符,上述内容都应始终有效。