如何创建多行UITextfield?我正在开发一个用户必须写一些信息的应用程序。为此,我需要一个UITextField多线(通常UITextField是一条线)。当我在Google上搜索时,我找到了一个使用UITextView而不是UITextfield为此目的的答案。
3 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
UITextField
特别是只有一行。
您的Google搜索是正确的,您需要使用UITextView
而不是UITextField
显示和编辑多行文字。
在Interface Builder中,添加所需的UITextView
位置,然后选择“可编辑”框。默认情况下它将是多行的。
喵喔喔
TA贡献1735条经验 获得超5个赞
好吧,我做了一些技巧;)首先构建一个UITextField
并增加它是size
这样的:
CGRect frameRect = textField.frame; frameRect.size.height = 53; textField.frame = frameRect;
然后建立一个UITextView
完全在你制作我的同一区域UITextField
,并删除它background color
。现在看起来你有多条线TextField
!
MMTTMM
TA贡献1869条经验 获得超4个赞
您可以使用UITextView伪造UITextField。您将遇到的问题是您丢失了占位符功能。
如果您选择使用UITextView并需要占位符,请执行以下操作:
在viewDidLoad中,将颜色和文本设置为占位符:
myTxtView.textColor = .lightGraymyTxtView.text = "Type your thoughts here..."
然后在选择UITextView时使占位符消失:
func textViewDidBeginEditing (textView: UITextView) { if myTxtView.textColor.textColor == ph_TextColor && myTxtView.isFirstResponder() { myTxtView.text = nil myTxtView.textColor = .white }}
用户完成编辑后,确保有值。如果没有,请再次添加占位符:
func textViewDidEndEditing (textView: UITextView) { if myTxtView.text.isEmpty || myTxtView.text == "" { myTxtView.textColor = .lightGray myTxtView.text = "Type your thoughts here..." }}
您可能需要伪造的其他功能:
UITextField经常将每个字母大写,您可以将该功能添加到UITableView:
myTxtView.autocapitalizationType = .words
UITextField通常不会滚动:
myTxtView.scrollEnabled = false
- 3 回答
- 0 关注
- 2325 浏览
添加回答
举报
0/150
提交
取消