如何创建一个多行的UITextfield?

290

我正在开发一个应用程序,用户需要写一些信息。为此,我需要一个多行的 UITextField(通常情况下,UITextField 只有单行)。

通过谷歌搜索,我发现可以使用 UITextView 代替 UITextfield 实现这个目的。


这是我为此目的编写的小控件。 它支持多行,并且有一个“完成”按钮来关闭键盘。 请随意使用它 https://code.google.com/p/galtextfield/ - Gal Blank
2
使用这个第三方类库,导入你的 Xcode 项目并使用它,它的效果非常好。链接:https://github.com/adonoho/HPGrowingTextView。 - mahesh chowdary
11个回答

-1

还有另一种对我有效的选择:

子类化UITextField并覆盖:

- (void)drawTextInRect:(CGRect)rect

在这个方法中,你可以做如下操作:

    NSDictionary *attributes = @{ NSFontAttributeName : self.font,
                                  NSForegroundColorAttributeName : self.textColor };

    [self.text drawInRect:verticalAlignedRect withAttributes:attributes];

如果矩形有足够的空间,此代码将使用尽可能多的行呈现文本。您可以根据需要指定任何其他属性。

不要使用:

self.defaultTextAttributes

这将强制单行文本呈现


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接