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つのテキストフィールドと1つのボタンがあり、両方の方法で数式を作成する必要があります。一方のテキストに数値を入力すると、もう一方のテキストに回答が表示されます。と他の方法。

4

3 に答える 3

1

そのコードを読むのは少し難しいですが、最初のスキムでは、少なくとも1つの問題は、isequaltostringのスペルであり、:のように大文字と小文字を区別する必要がありisEqualToStringます。もう1つの問題は、一方または両方のテキストフィールドアウトレットが接続されておらず、lauks1の値がnullになることです。nilの場合、lauks1.textは常にnilになり、決して。になりません@""

このメソッドが呼び出されたときに、アウトレットが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];
    }
}
于 2013-03-25T15:14:13.777 に答える
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];

        }

    }
于 2013-03-25T15:03:45.893 に答える
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 に答える