有谁知道如何创建具有UIImage背景并进行自动换行的文本字段?
UITextField似乎没有自动换行功能,而UITextView无法使用背景图片!此外,它应该更改控件的大小或至少警告行数已更改,以便委托可以更改其大小..
此类控件的一个示例是SMS应用程序中消息的输入字段。
修改:代码还应获取文本字段以始终显示正在编辑的文本。显然,当UITextView在编辑时改变大小时,它会以某种方式失去对当前文本的关注。
非常感谢! 阿维亚德。
答案 0 :(得分:2)
UITextField上没有自动换行功能,因为UITextField只支持单行文本。
使用UITextView。 make textView.backgroundColor = [UIColor clearColor]。首先添加UIImage,然后添加UITextView。确保尺寸正确,你应该没事。
至于更改UITextView的大小,在UITextViewDelegate中,执行以下操作:
- (void)textViewDidChange:(UITextView *)textView
{
NSString *s = textView.text;
CGSize testSize = CGSizeMake(textView.frame.size.width, NSIntegerMax);
CGSize neededSize = [s sizeWithFont: textView.font constrainedToSize: testSize lineBreakMode: UILineBreakModeWordWrap]; // or UILineBreakModeCharacterWrap?
if (neededSize.height > testSize.height)
{
// grow textView
textView.frame = CGRectMake(textView.frame.origin.x, textView.frame.origin.y, neededSize.width, neededSize.height);
// then adjust the image size -- something like this
imageView.frame = textView.frame
}
}
答案 1 :(得分:0)
最终我编写了自己的代码,它在某种程度上有很多变通方法(例如改变焦点,再次删除所有文本时调整大小等)。如果有人有兴趣,我会发布代码。
在其他新闻中,就在今天,我在这里看到一个名为 IFVerticallyExpandingTextField
的不同问题。这个名字很有希望,代码在这里,我会看一看。任何有类似问题的人,你也可能想看到它。
我的错误,我没有仔细阅读:IFVerticallyExpandingTextField
适用于Mac而非iPhone。