如果声明创造货币知道汇率

时间:2013-03-25 14:42:56

标签: ios objective-c cocoa-touch

- (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中输入数字时,它在另一个中显示答案。和其他方式。

3 个答案:

答案 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];
   }
}