1

私はテキストボットを持っています.3のような値を入力すると12倍になり、テキストフィールドに数字を入力すると自動的にボタンのタイトルに36が表示されます.次のコードを追加していますが、常に表示されます.ゼロ私はこのコードをviewdidLoadに追加しています

     float monthText = [[monthTextField text] floatValue];
    float year=12;

float monthButtonTitle=monthText*year;


NSString *titleMonth = [NSString stringWithFormat:@"%d",monthButtonTitle];


[monthButton setTitle:titleMonth forState:UIControlStateNormal];
4

3 に答える 3

1
 [NSString stringWithFormat:@"%f",monthButtonTitle];

UITextFieldDelegateを実装する

yourTextField.delegate = self // self maybe the controller;

次に方法で

- (void)textFieldDidEndEditing:(UITextField *)textField

入力した新しい値を取得します

float v = [textField.text floatValue];

計算して、ラベルを更新する

数値の入力のみを許可する場合は、これを行うことができます

textField.keyboardType = UIKeyboardTypeNumberPad;

#define NUMBERSPERIOD @"0123456789."

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
 NSCharacterSet *cs = [[NSCharacterSet characterSetWithCharactersInString:NUMBERSPERIOD] invertedSet];
 NSString *filtered = [[string componentsSeparatedByCharactersInSet:cs] componentsJoinedByString:@""];
 BOOL basicTest = [string isEqualToString:filtered];
 // Add any predicate testing here
 return basicTest;
}
于 2012-05-09T06:38:55.167 に答える
0
 NSString *titleMonth =  [NSString stringWithFormat:@"%f",monthButtonTitle];

[monthButton setTitle:titleMonth forState:UIControlStateNormal];
于 2012-05-09T06:39:33.083 に答える
0

このようにテキストフィールドにアクションを追加します

[yourTextField addTarget:self action:@selector(textFieldTextDidChange:) forControlEvents:UIControlEventEditingChanged];

次に、メソッド textFieldTextDidChange: を次のように実装します。

- (void) textFieldTextDidChange:(UITextField *)tf {
    float monthText = [[tf text] floatValue];
    float year=12;
    float monthButtonTitle=monthText*year;
    NSString *titleMonth = [NSString stringWithFormat:@"%d",monthButtonTitle];
    [monthButton setTitle:titleMonth forState:UIControlStateNormal];
}
于 2012-05-09T06:51:59.443 に答える