0

初期化時に 1 文字のみを表示するように設定されている UITextfield がありますが、制約を使用してフィールドを必要に応じて拡張できるようにしています。

私の制約:

@"H:[txtField(<=80)]-14-|

text 属性を介して textField を設定すると、完全にサイズ変更されますが、キーボードから入力しようとすると、shouldChangeCharactersInRange内で sizeToFit を使用するのが最善の方法です...これは機能しますが、金額が移動する代わりにiphone で左に内側に移動すると、右に外側に移動して画面から外れます。

左内側に移動するにはどうすればよいですか?

4

1 に答える 1

0

私はStackOverflowで見つけたこのちょっとしたものを使ってしまいました

shouldChangeCharactersInRange double currentValue;

NSString *str;

if(![textField.text length]){
    str = @"$ 0.00";
}else{
    str = textField.text;
}

currentValue = [[str substringFromIndex:1] doubleValue];

double cents = round(currentValue * 100.0f);

if ([string length]) {
    for (size_t i = 0; i < [string length]; i++) {
        unichar c = [string characterAtIndex:i];
        if (isnumber(c)) {
            cents *= 10;
            cents += c - '0';
        }
    }
} else {
    // back Space
    cents = floor(cents / 10);
}

textField.text = [NSString stringWithFormat:@"%.2f", cents / 100.0f];

//Add this line
[textField setText:[NSString stringWithFormat:@"$%@",[textField text]]];

return NO;
于 2013-01-30T17:39:43.470 に答える