1

私は自分のセルの1つからdetailViewを持っています。私は 2 つの UITextField を持っています。1 つの i は 100 のような値を入力します。ポイントは、別の UITextField に「a + b」値を表示することです。例えば。「a」テキスト フィールドの値は 45 です。「b」テキスト フィールドに入力すると動的に変化すると想定されます。1 を入力すると 46 になり、10 を入力すると 55、100 - 145 になります。 .しかし、私の問題は、それが「古い」値を取得することです.10を入力すると1だけが追加され、100を入力すると10が追加されます.そして、最終的に画面上の任意の場所をクリックすると、キーボードが消えて正しい値が得られます.しかし、動的に変化すると仮定します。私のコードの一部があります:

-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {


    NSString *calculator=[calculateField text];
    int modifyer = [calculator intValue];


    intProtein = [protein intValue];
    int prot = [protein intValue];


    self.intProteinResult = prot+modifyer;


    [proteinTextField setText:[NSString stringWithFormat:@"%i", intProteinResult]];


    return YES;
}

そして、はい、私は私のものと同様の検索トピックを試し、他のメソッド stringByReplaceingCharactersInRange:range withString:string を試しました。しかし、私はそれを扱う方法を理解できません。助けてください、アドバイスをいただければ幸いです。

4

1 に答える 1

1

次のコードを使用して、値を計算機変数に割り当てます。

NSString* calculator = [[calculateField text] stringByReplacingCharactersInRange: range withString: string];

上記は、どの文字が置き換えられたり編集されたりしても常に機能するはずです。

于 2012-05-04T14:03:19.837 に答える