在swift中使用UITextview编辑模式

时间:2017-04-20 04:37:23

标签: swift uitextview

我想在UITextview中编辑一些文本,但每当键盘出现时,它都会清除以前的文本。我也想打开键盘上的前一个文本。

任何人都知道如何在swift 3.0中做到这一点?

我在viewdidload中设置了UITextView的字符串

treatment.text = patient?.patientTreatment;
   func textViewDidBeginEditing(_ textView: UITextView)
{
    if textView.text != ""
    {
        textView.text = patient?.patientTreatment
    }
}

我在这里观察到一件事,一旦键盘打开我的文字就会消失,一旦键盘关闭就会回来。

4 个答案:

答案 0 :(得分:0)

为此您需要检查条件是否存在于UTextView内的字符串您的PlaceHolder

您可以使用以下

  func textViewDidBeginEditing(_ textView: UITextView)
  {
        if textView.text == "YOUR_PLACEHOLDER"  {
          textView.text = ""
        } else if textView.text == ""  {
          textView.text = "YOUR_PLACEHOLDER"
        }
  }

答案 1 :(得分:0)

这是一个例子。

viewDidLoad内添加此内容:

yourTextView.text = ""

并按原样使用此委托方法:

func textViewDidBeginEditing(_ textView: UITextView) {
    if textView.text.isEmpty {
    // your textView is Empty, set your Placeholder
        textView.text = "Placeholder"    // Use your desired String here
    } else {
    // your textView contains some texts, change it according to your needs
        textView.text = "My Text"        // Use your desired String here
    }
}

答案 2 :(得分:0)

试试这个

func textViewDidEndEditing(_ textView: UITextView) {

        if textView.text.isEmpty{
            textView.text = "Enter description here..."
            textView.textColor = UIColor.lightGray
        }else{

              textView.text = "My description"
          } 
    }

答案 3 :(得分:0)

在UITextView中设置占位符

extension EditProfileVC:UITextViewDelegate{

    func textViewDidBeginEditing(_ textView: UITextView) {
        if textView.textColor == UIColor.lightGray {
            textView.text = nil
            textView.textColor = UIColor.black
        }
    }
    func textViewDidEndEditing(_ textView: UITextView) {
        if textView.text.isEmpty {
            textView.text = "Placeholder"
            textView.textColor = UIColor.lightGray
        }
    }
}