2个文本字段始终等于100%xcode

时间:2012-09-14 03:29:43

标签: objective-c ios xcode uitextfield

我有两个文本字段用于输入百分比。如果我在第一个字段中输入20,我希望第二个文本字段更新为60.如果我将第二个文本字段更改为30,则稍后,我想第一次更新到70.

为了便于显示我的意思,请说我有两个文本字段_firstPercent和_secondPercent以及相关标签_firstTotal和_secondTotal:

float firstPercent = [_firstPercent.text floatValue];

float firstAmount = (firstSalePercent / 100) * firstOrigonalAmount;

_firstTotal.text = [NSString stringWithFormat:@"%1.0f",firstAmount];



float secondPercent = [_secondPercent.text floatValue];

float secondAmount = (secondSalePercent / 100) * secondOrigonalAmount;

_secondTotal.text = [NSString stringWithFormat:@"%1.0f",secondAmount];

我真的不知道如何处理这个,所以我尝试在其各自的代码下面添加它。它适用于第一个,但不适用于第二个。

float percentToSecond = 100 - firstPercent;
_secondPercent.text = [NSString stringWithFormat:@"%1.0f", percentToSecond];

float percentToFirst = 100 - secondPercent;
_firstPercent.text = [NSString stringWithFormat:@"%1.0f", percentToFirst];

我尝试了其他解决方案,但不知道该怎么做。

我希望有人带领我朝着正确的方向前进。

由于

1 个答案:

答案 0 :(得分:1)

如何使用委托方法controlTextDidEndEditing:查看输入的值,然后设置其他文本字段的值。在下面的代码中,tf1和tf2是两个文本字段的IBOutlets。

    -(void)controlTextDidEndEditing:(NSNotification *)obj {
    float value = [[[obj.userInfo valueForKey:@"NSFieldEditor"] string] floatValue];
    if (obj.object == self.tf1) {
        self.tf2.stringValue = [NSString stringWithFormat:@"%1.0f",100. - value];
    }else if (obj.object == self.tf2) {
        self.tf1.stringValue = [NSString stringWithFormat:@"%1.0f",100. - value];
    }
}

你必须做更多检查,以确保用户没有输入大于100的数字或不是数字的数字。