我有两个UITextFields
一个字段是RISK而另一个是WIN。现在,当用户开始在RISK字段中写入时,它应该相应地计算WIN的值,并且应该在WIN字段中填充。公式就是这个
if (a<0) {
WIN = RISK/(-a/100)
}
else {
WIN = RISK*(a/100)
}
如果在WIN中输入值,那么它应该填充RISK中的值,公式为 if(a&lt; 0){
RISK = WIN*(-a/100)
}
else {
RISK= WIN*(100/a)
}
所以请大家指导我如何在不按任何按钮的情况下填充字段,如何计算值? Thanx提前
答案 0 :(得分:2)
您应该实现UITextFieldDelegate。将类(可能是视图控制器)设置为WIN文本字段的委托,然后实现此方法。
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string;
在方法内部,将字符串转换为数字,运行公式,更改RISK文本字段的值并返回YES。
答案 1 :(得分:1)
假设每个字段都有一个属性:
@property (nonatomic, retain) IBOutlet UITextField win;
@property (nonatomic, retain) IBOutlet UITextField risk;
和IBAction
方法:
- (IBAction) winDidChange: (id) sender;
- (IBAction) riskDidChange: (id) sender;
在界面构建器中将这些内容隐藏到编辑已更改事件:
您的方法将类似于:
- (IBAction) winDidChange: (id) sender
{
float winValue = [self.win.text floatValue];
float riskValue = <your calculation here>
self.risk.text = [NSString stringWithFormat: @"%f", riskValue];
}
..同样适用于riskDidChange:
如果您将win
字段的编辑已更改事件与界面构建器中的winDidChange:
IBAction
相关联({{1}也是如此}),每次在字段中输入字符时都会调用该方法。
答案 2 :(得分:0)
您可以实现委托方法(UITextFieldDelegate)以使用以下方法....
当值更改时,您可以使用这些委托方法更新其他值。
答案 3 :(得分:0)
您需要做的就是
[myTextField addTarget:self action:@selector(myFunction:) forControlEvents:UIControlEventEditingChanged];
然后
- (void)myFunction:(id)sender {
//calculate and show in WIN field
}