4

在我的应用程序中,我有多个 textField。当我输入小文本时,它会正常工作,但是当输入大文本时,文本字段的大小会改变。

像这样

带小文字

在此处输入图像描述

带有大文本

在此处输入图像描述

是的,它只发生在 iOS6 中,而不是 iOS5 中。

更新

我不知道怎么做,但我已经在 ios6 屏幕中更改了我的约束属性,它现在可以正常运行了。感谢您的帮助。

4

4 回答 4

0

尝试使用这个。UITextField但没有提供任何选项来使其成为多行文本框。所以你必须和UITextView.

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
    CGSize size = [txtView.text sizeWithFont:txtView.font];
    CGRect f = txtView.frame;
    f.size.height = ceil(size.width/f.size.width)*size.height;
    txtView.frame = f;
}

并了解更多信息..

  1. 如何创建多行 UITextfield?

否则,如果您不想在下一行进行,请使用此代码。

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

    CGSize boundingSize = CGSizeMake(320, CGFLOAT_MAX);
    CGSize requiredSize = [textField.text sizeWithFont:[UIFont fontWithName:@"Helvetica" size:20.0f] constrainedToSize:boundingSize
                                         lineBreakMode:NSLineBreakByWordWrapping];
    CGFloat requiredHeight = requiredSize.height;

    CGRect frame1;
    frame1 = txtFld.frame;
    frame1.size.height = requiredHeight;
    txtFld.frame = frame1;
    NSLog(@"%f", frame1.size.height);
    return YES;
}
于 2013-06-07T12:39:08.820 回答
0

如果您不想更改宽度,则可以通过textField.frame.size.width

财产。

这意味着在扩展到一定宽度后,限制输入

于 2013-06-07T13:21:21.013 回答
0

尝试这个

[yourTextField setAdjustsFontSizeToFitWidth:FALSE];
于 2013-06-07T12:21:06.953 回答
0

我也面临同样的问题。我必须设置我的文本字段及其相邻 uilabel 的左右约束,以确保我的文本字段在输入大量文本后不会自行调整大小。这是自动布局的问题。以上解决方法都试过了,以上解决方法都不能解决。

于 2017-01-13T13:16:40.203 回答