3个文本框,必须总计100个

时间:2012-12-23 19:45:51

标签: iphone objective-c xcode

所以我有3个文本字段(A,B,C),用户只能输入数字,因为键盘是数字键盘。

我有一张支票(用户在这里为我整理好了),如果用户试图在每个方框中输入超过100条,就会出现错误。

我需要一种方法来查看在文本字段中输入的数字,然后查看3的总数,然后相应地调整其他数据。

一个例子就是我输入以下内容:

示例1 A = 50 我希望B能够填补其余的50个

示例2 A = 40 B = 50 C = 10

然后我将A改为60.现在总数为120。 我想看看B,然后走20,所以我有以下。 A = 60 B = 30 C = 10

我已经看到用户有2个文本字段的情况,他想要总共100个,但我还没有看到要求3的线程。

谢谢

1 个答案:

答案 0 :(得分:1)

假设您有三个字段。这是伪代码。将此委托功能附加到所有3个文本区域。

// Take 3 fields
FieldA, FieldB, FieldC

// Total target to reach
TotalTarget = 100

// The total we currently have
total = FieldA + FieldB + FieldC

// Work out how much we are under by. 
// If positive, we are under. If negative, we are over.
underBy = TotalTarget - total

// Now two variables for the 'other two' fields.
if sender == FieldA:
  other1 = FieldB, other2 = FieldC
if sender == FieldB:
  other1 = FieldA, other2 = FieldC
if sender == FieldC:
  other1 = FieldA, other2 = FieldB

// Split the difference and assign to other 2 fields so they are raised or lowered the same amount.
// If under, add, if over, subtract.
other1 = other1 + overBy / 2
other2 = other2 + overBy / 2        

// This will add 1 or 0 to other2 (i.e. compensate for round-down)
other2 = other2 + overBy % 2;

如果使用整数除法,则会出现舍入问题。提示:如果它很奇怪,你可以添加一个到一个字段。

确保编写测试。我没有尝试过这个,但它应该有用。