根据输入的文本调整UITextField的大小

时间:2013-01-30 17:36:10

标签: objective-c

我有UITextfield设置为在初始化时只显示1个字符,但是我使用约束来使字段能够根据需要进行扩展。

我的约束:

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

当我通过text属性设置textField时,它会完美调整大小,但是当我尝试通过键盘输入时,我能得到的最好的就是使用 sizeToFit 在shouldChangeCharactersInRange里面......哪种方式有效,但是在iphone上向内移动到美元数量,而是向外移动到屏幕右侧。

如何让它向左移动?

1 个答案:

答案 0 :(得分: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;