为了账号安全,请及时绑定邮箱和手机立即绑定

如何创建多行UITextfield?

如何创建多行UITextfield?

iOS
SMILET 2019-08-01 16:05:39
如何创建多行UITextfield?我正在开发一个用户必须写一些信息的应用程序。为此,我需要一个UITextField多线(通常UITextField是一条线)。当我在Google上搜索时,我找到了一个使用UITextView而不是UITextfield为此目的的答案。
查看完整描述

3 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

UITextField 特别是只有一行。

您的Google搜索是正确的,您需要使用UITextView而不是UITextField显示和编辑多行文字。

在Interface Builder中,添加所需的UITextView位置,然后选择“可编辑”框。默认情况下它将是多行的。


查看完整回答
反对 回复 2019-08-01
?
喵喔喔

TA贡献1735条经验 获得超5个赞

好吧,我做了一些技巧;)首先构建一个UITextField并增加它是size这样的:

CGRect frameRect = textField.frame;
        frameRect.size.height = 53;
        textField.frame = frameRect;

然后建立一个UITextView完全在你制作我的同一区域UITextField,并删除它background color。现在看起来你有多条线TextField


查看完整回答
反对 回复 2019-08-01
?
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


查看完整回答
反对 回复 2019-08-01
  • 3 回答
  • 0 关注
  • 2325 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信