0

我有两个用于输入百分比的文本字段。如果我在第一个字段中输入 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];

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

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

谢谢

4

1 回答 1

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 的数字或不是数字的数字。

于 2012-09-14T04:06:07.560 回答