0
- (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 个文本字段和一个按钮,我需要以两种方式创建公式 - 当我在一个文本字段中输入数字时,它会在另一个文本字段中显示答案。和其他方式。

4

3 回答 3

1

阅读该代码有点困难,但在第一次浏览时,至少有一个问题是 isequaltostring 的拼写,需要大写字母,例如isEqualToString:。另一个问题很可能是一个或两个文本字段出口没有连接,给你 lauks1 的空值。如果它是 nil,lauks1.text 将永远是 nil 并且永远不会是@""

请检查您的网点是否已连接到 IB,并且在调用此方法时不为零。关于其余代码,我认为决定计算方向的更好测试是在文本字段上测试 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];
    }
}
于 2013-03-25T15:14:13.777 回答
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];
   }
}
于 2013-03-25T16:53:52.237 回答
0

Can you try this

- (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];

        }

    }
于 2013-03-25T15:03:45.893 回答