- (IBAction)poga1:(id)sender {
float kurss = 0.702804;
if ([_lauks2.text isequaltostring:@"") {
float atbilde = [_lauks1 floatValue] * kurss;
NSString *string = [[NSString alloc] initWithFormat:@"%.2f",atbilde];
NSLog(@"%@",string);
[_lauks2 setStringValue:string];
}
else if ([_lauks1.text isequaltostring:@"") {
float atbilde2 = [_lauks2 floatValue] / kurss;
NSString *string2 = [[NSString alloc] initWithFormat:@"%.2f",atbilde2];
NSLog(@"%@",string);
[_lauks1 setStringValue:string2];
}
}
@end
我正在尝试让它发挥作用,它从第一场到另一场但不回来......我是新手,所以请保持温柔:)
我有2个文本字段和一个按钮我需要以两种方式创建公式 - 当我在一个textfied中输入数字时,它在另一个中显示答案。和其他方式。
答案 0 :(得分:1)
阅读该代码有点困难,但在第一次浏览时,至少有一个问题是isequaltostring的拼写,需要内部封顶,如isEqualToString
:.另一个问题很可能是一个或两个文本字段出口没有连接,为lauks1提供空值。如果它是零,则lauks1.text将始终为零,永远不会为@""
。
调用此方法时,请检查您的插座是否连接在IB中而不是nil。关于代码的其余部分,我认为更好的测试来决定计算应采用的方向是在文本字段上测试isFirstResponder。空白文本的逻辑可以取决于您,可能导致其他字段被消隐。它会是这样的(我还建议在计算方面遵循更容易的代码):
- (IBAction)pressedConvertButton:(id)sender {
if ([self.currencyATextField isFirstResponder]) { // assume you have outlets for the text fields
float aValue = [self.currencyATextField.text floatValue];
float bValue = aValue * kCURRENCY_A_TO_B_EXCHANGE;
self.currencyBTextField.text = [[NSNumber numberWithFloat:bValue] stringValue];
} else {
float bValue = [self.currencyBTextField.text floatValue];
float aValue = bValue * kCURRENCY_B_TO_A_EXCHANGE;
self.currencyATextField.text = [[NSNumber numberWithFloat:aValue] stringValue];
}
}
答案 1 :(得分:0)
你能试试吗
- (IBAction)poga1:(id)sender {
float kurss = 0.702804;
if ([_lauks1.text length]) {
float atbilde = [_lauks1.text floatValue] * kurss;
NSString *string = [[NSString alloc] initWithFormat:@"%.2f",atbilde];
NSLog(@"%@",string);
[_lauks2 setText:string];
}
else if ([_lauks2.text length]) {
float atbilde2 = [_lauks2.text floatValue] / kurss;
NSString *string2 = [[NSString alloc] initWithFormat:@"%.2f",atbilde2];
NSLog(@"%@",string2);
[_lauks1 setText:string2];
}
}
答案 2 :(得分:0)
我建议您使用文本更改通知,每当文本在一个字段中更改时,它将在其他字段中更新,而无需按钮干预(如果您仍需要按钮,则在文本更改方法中跟踪当前编辑字段,当按下按钮时,更新另一个字段。)
// add the observer
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(textFieldDidChange:)
name:@"UITextFieldTextDidChangeNotification"
object:nil];
// the method to call on a change
- (void)textFieldDidChange:(NSNotification*)aNotification
{
float kurss = 0.702804;
if(aNotification.object == _lauks1) {
float atbilde = [_lauks1.text floatValue] * kurss;
NSString *string = [[NSString alloc] initWithFormat:@"%.2f",atbilde];
NSLog(@"%@",string);
[_lauks2 setText:string];
} else if (aNotification.object == _lauks2) {
float atbilde2 = [_lauks2.text floatValue] / kurss;
NSString *string2 = [[NSString alloc] initWithFormat:@"%.2f",atbilde2];
NSLog(@"%@",string);
[_lauks1 setText:string2];
}
}