我正在创建一个以编程方式创建UITextView的应用程序。问题是,当用户键入文本或应用程序设置文本时,单词分布在一行并离开屏幕,而不是换行到下一行。当我使用界面构建器创建UITextView时,文本会自动换行,但不会以编程方式创建。
代码:
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(100, 12, 210, 60)];
[[self view] addSubview:textView];
[textView becomeFirstResponder];
答案 0 :(得分:4)
从iOS 7开始提供:
textView.textContainer.lineBreakMode = NSLineBreakByWordWrapping;
答案 1 :(得分:3)
UITextView
和UITextField
是不同的类。 UITextField
是单行,UITextView
是多行。以编程方式创建UITextView
而不是UITextField
,您已经解决了我期望的问题。
答案 2 :(得分:0)
UITextView
的整个要点是允许多行文字。来自文档:
UITextView
类实现了可滚动的行为, 多行文本区域。该类支持使用a显示文本 自定义字体,颜色和对齐方式,还支持文本编辑。您 通常使用文本视图来显示多行文本,例如 显示大文本文档的正文时。
由于UITextView
继承自UIScrollView
,您可以通过禁用水平滚动来强制它进行合作。为此,您需要设置contentSize
,例如
CGSize scrollableSize = CGSizeMake(210, 480);
[textView setContentSize:scrollableSize];
这会将宽度固定为210
,并允许高度滚动到480
。由于您要将textView
设置为(210,60)
,因此应该允许垂直滚动而不是水平滚动。