如何根据内容水平扩展UITextField?

时间:2015-09-11 00:57:07

标签: ios objective-c uitextfield

我试图在用户输入时让我的文本字段水平扩展。我有代码:

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    CGFloat textWidth = [[NSString stringWithFormat:@"%@%@",[textField text], string] sizeWithFont:[textField font]].width;
    textWidth += 15;
    CGRect tFFrame = [textField frame];

    tFFrame.size.width = textWidth;
    textField.frame = tFFrame;

    [textField setNeedsDisplay];
    return YES;


}

适用于大多数情况,但首先退格时框架不会更新,当我粘贴文本已被选中时,它的行为就像被替换的文本一样。我如何解决这些问题,而且,我知道sizeWithFont:方法不适用于iOS 7,因此任何人都对如何实现向后兼容有任何想法,这也很棒。

提前致谢。

0 个答案:

没有答案