2013-03-25 47 views
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 

我試圖使它的工作,它的工作的一種方式,從第一場到另一個但不是回來......我在這個新的,所以請溫柔:)if語句創建明知貨幣匯率

我有2個文本框和一個按鈕,我需要用兩種方式創建公式 - 當我在一個文本中輸入數字時,它會在其他部分顯示答案。和其他方式。

+1

從來不使用浮動貨幣 – peko 2013-03-25 16:57:41

回答

1

這是一個有點艱難讀取這些代碼,但在第一次脫脂,至少有一個問題是isequaltostring的拼寫,需要跨帽,像isEqualToString:。另一個問題很可能是一個或兩個文本字段的插口沒有連接,給你lauks1的空值。如果它是零,lauks1.text將永遠是零,永遠不會是@""

請檢查您的網點是否已連接到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]; 
    } 
} 
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]; 

     } 

    } 
+0

沒有它仍然只是在一種方式:) – TomTom 2013-03-25 15:08:22

+0

@TomsRatkevičs與這種方法,它只會工作時,只有一個textField h作爲有效的價值。如果它們都有價值,那麼這個邏輯將不起作用。 – Anupdas 2013-03-25 15:23:19

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