2009-09-29 46 views
3

一个非常简单的问题,但我找不到解决方案。我如何实现在输入时增加高度的UITextfield?这将是您在iPhone的本机短信应用发送栏中看到的控制类型。当你按新行时,控件的高度会增加。如何在输入时增加高度的UITextfield?

回答

4

在您的UITextViewDelegate执行textViewDidChange:您需要计算特定宽度的文本大小并进行相应调整。

-(void)textViewDidChange:(UITextView *)textView 
{ 
    NSString *text = [textView text]; 
    NSFont *font = [textView font]; 
    CGFloat width = [textView frame].size.width; 

    CGSize size = [text sizeWithFont:font constrainedToSize:CGSizeMake(width, 9999) lineBreakMode:UILineBreakModeWordWrap]; 

    /* Adjust text view width with "size.height" */ 
} 
+1

这个问题是否与UITextField一样工作? – 2014-10-09 23:42:57

1

我会使用UITextView来代替。无论哪种情况,您都可以使用TextDidChange通知(称为在IB中更改编辑)来检查文本的大小并相应地更新高度。