我想在UITextview中编辑一些文本,但每当键盘出现时,它都会清除以前的文本。我也想打开键盘上的前一个文本。
任何人都知道如何在swift 3.0中做到这一点?
我在viewdidload中设置了UITextView的字符串
treatment.text = patient?.patientTreatment;
func textViewDidBeginEditing(_ textView: UITextView)
{
if textView.text != ""
{
textView.text = patient?.patientTreatment
}
}
我在这里观察到一件事,一旦键盘打开我的文字就会消失,一旦键盘关闭就会回来。
答案 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
}
}
}