如何创建一个自动换行文本的 UITextView?

发布于 2024-11-25 10:40:06 字数 323 浏览 1 评论 0原文

我正在创建一个以编程方式创建 UITextView 的应用程序。问题是,当用户输入文本或应用程序设置文本时,单词会跨行传播并离开屏幕,而不是换行到下一行。当我使用界面生成器创建 UITextView 时,文本会自动换行,但以编程方式创建时不会。

代码:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(100, 12, 210, 60)];
[[self view] addSubview:textView];
[textView becomeFirstResponder];

I am creating an app that creates a UITextView programmatically. The problem is, when the user types in text or the app sets the text, the words spread across one line and off the screen, rather than wrapping to the next line. When I create a UITextView with interface builder, the text wraps automatically, but not when it is created programmatically.

Code:

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(100, 12, 210, 60)];
[[self view] addSubview:textView];
[textView becomeFirstResponder];

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

请别遗忘我 2024-12-02 10:40:06

自 iOS 7 起可用:

textView.textContainer.lineBreakMode = NSLineBreakByWordWrapping;

Available since iOS 7:

textView.textContainer.lineBreakMode = NSLineBreakByWordWrapping;
欢烬 2024-12-02 10:40:06

UITextViewUITextField 是不同的类。 UITextField 是单行,UITextView 是多行。以编程方式创建 UITextView 而不是 UITextField,并且您已经解决了我期望的问题。

UITextView and UITextField are different classes. UITextField is single line and UITextView is multiline. Create a UITextView rather than a UITextField programmatically and you have solved your problem I expect.

吐个泡泡 2024-12-02 10:40:06

UITextView 的全部要点是允许多行文本。从文档中:

UITextView 类实现可滚动的行为,
多行文本区域。该类支持使用
自定义字体、颜色和对齐方式,还支持文本编辑。你
通常使用文本视图来显示多行文本,例如
当显示大型文本文档的正文时。

由于 UITextView 继承自 UIScrollView,因此您可以通过禁用水平滚动来强制它配合。为此,您需要设置 contentSize,例如,

CGSize scrollableSize = CGSizeMake(210, 480);
[textView setContentSize:scrollableSize];

这会将宽度固定为 210 并允许高度滚动到 480。由于您将 textView 设置为 (210,60) 大小,因此应该允许垂直滚动,但不允许水平滚动。

The entire point of UITextView is to allow multiple lines of text. From the documentation:

The UITextView class implements the behavior for a scrollable,
multiline text region. The class supports the display of text using a
custom font, color, and alignment and also supports text editing. You
typically use a text view to display multiple lines of text, such as
when displaying the body of a large text document.

Since UITextView inherits from UIScrollView, you may be able to force it to cooperate by disabling the horizontal scrolling. To do this, you want to set the contentSize, e.g.

CGSize scrollableSize = CGSizeMake(210, 480);
[textView setContentSize:scrollableSize];

This will fix the width to 210 and allow the height to scroll to 480. Since you are setting the textView to size (210,60), this should allow the vertical scrolling but not the horizontal scrolling.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文