我正在开发一个应用程序,用户必须写一些信息。为此,我需要一个UITextField是多行(在一般情况下UITextField是单行)。
当我在谷歌搜索时,我找到了一个使用UITextView而不是UITextfield的答案。
我正在开发一个应用程序,用户必须写一些信息。为此,我需要一个UITextField是多行(在一般情况下UITextField是单行)。
当我在谷歌搜索时,我找到了一个使用UITextView而不是UITextfield的答案。
当前回答
UITextField是单行的。
你的谷歌搜索是正确的,你需要使用UITextView而不是UITextField来显示和编辑多行文本。
在Interface Builder中,在你想要的地方添加一个UITextView,并选择“可编辑”框。默认情况下是多行。
其他回答
作为上面h4xxr回答的补充,调整UITextField高度的一个更简单的方法是在属性检查器->文本字段中选择方形边框样式。(默认情况下,UITextfield的边框样式是椭圆。)
参考:回答Brian在这里:如何设置UITextField高度?
好吧,我用了一些技巧;)首先构建一个UITextField,并像这样增加它的大小:
CGRect frameRect = textField.frame;
frameRect.size.height = 53;
textField.frame = frameRect;
然后在你创建UITextField的同一区域建立一个UITextView,并删除它的背景颜色。现在看起来,你有一个多行TextField !
使用textView代替,然后遵循它的委托,调用textViewDidChange方法在该方法调用tableView.beginUpdates()和tableview . endpdates(),不要忘记设置rowHeight和estimatedRowHeight为UITableView.automaticDimension。
除了多行行为,UITextView和UITextField之间的主要区别是UITextView不建议占位符。为了绕过这个限制,你可以使用带有“假占位符”的UITextView。
详情请看这个SO问题:UITextView中的占位符。
UITextField是单行的。
你的谷歌搜索是正确的,你需要使用UITextView而不是UITextField来显示和编辑多行文本。
在Interface Builder中,在你想要的地方添加一个UITextView,并选择“可编辑”框。默认情况下是多行。