我有两个文本字段用于输入百分比。如果我在第一个字段中输入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];
我尝试了其他解决方案,但不知道该怎么做。
我希望有人带领我朝着正确的方向前进。
由于
答案 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的数字或不是数字的数字。