У меня есть контроллер представления, который содержит два текстовых представления (storyTitle и storyDescription).Я добавил заполнители для обоих текстовых представлений, код ниже покажет вам, как я это сделал:
// Setup the story title text field
func setupStoryTitleTextView() {
storyTitle.textColor = .gray
storyTitle.text = "Add story title"
storyTitle.textContainerInset = UIEdgeInsets(top: 10, left: 20, bottom: 10, right: 20)
self.storyTitle.delegate = self
view.addSubview(storyTitle)
}
// Setup the storyDescription text view
func setupStoryDescriptionTextView() {
storyDescription.text = "Description of the story"
storyDescription.textColor = .gray
storyDescription.textContainerInset = UIEdgeInsets(top: 10, left: 20, bottom: 300, right: 20)
self.storyDescription.delegate = self
view.addSubview(storyDescription)
}
// To remove placeholder text when the user starts typing
func textViewDidBeginEditing(_ textView: UITextView) {
// Story title text view
if storyTitle.textColor == .gray {
storyTitle.text = nil
storyTitle.textColor = .black
}
// Story description text view
if storyDescription.textColor == .gray {
storyDescription.text = nil
storyDescription.textColor = .black
}
}
// To bring the placeholder back when the text views don't contain any text
func textViewDidEndEditing(_ textView: UITextView) {
// Story title text view
if storyTitle.text.isEmpty {
storyTitle.text = "Add story title"
storyTitle.textColor = .gray
}
// Story description text view
if storyDescription.text.isEmpty {
storyDescription.text = "Description of the story"
storyDescription.textColor = .gray
}
}
В данном случае происходит то, что, когда я нажимаю на одно текстовое представление, заполнители в обоихтекстовые представления исчезают, это потому, что выполняются оба условия if в textViewDidBeginEditing
.Как я могу предотвратить это?Любая помощь приветствуется, спасибо:)