我试图在用户输入时让我的文本字段水平扩展。我有代码:
- (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,因此任何人都对如何实现向后兼容有任何想法,这也很棒。
提前致谢。