Функция UITextField недоступна в UITextView - PullRequest
0 голосов
/ 29 августа 2018

У меня проблема с применением функции textField с точки зрения textView.

Раньше я использовал textField, и приведенный ниже код работал без проблем. Теперь я решил использовать textView вместо textField, поэтому хочу изменить каждый textField на textView, но не знаю, как реализовать функцию textField.addtarget() для textView. Что я хочу, так это то, что изначально, когда textView пуст, цвет кнопки не включается, но когда в нем есть текст, цвет кнопки должен быть синим.

Я не могу найти правильную функцию, которая содержит #selector для вызова моей основной функции в функциях textView. Буду признателен за любую помощь. Заранее большое спасибо!

 override func viewDidLoad() {
    super.viewDidLoad()
    buttonColor.isEnabled = false    
    handleTextField()
}


func handleTextField() {

    textField.addTarget(self, action: #selector(self.textFieldDidChange), for: UIControlEvents.editingChanged)
}   // used to call the main function



@objc func textFieldDidChange() {

if (textView.text != ""){
        buttonColor.setTitleColor(UIColor.blue, for: UIControlState.normal)
        buttonColor.isEnabled = true
        return
    }
    buttonColor.setTitleColor(UIColor.lightGray, for: UIControlState.normal)
    buttonColor.isEnabled = false
} 

1 Ответ

0 голосов
/ 29 августа 2018

У вас есть делегат для этого в UITextViewDelegate с именем textViewDidChange (_:) .

class ViewController: UIViewController, UITextViewDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        yourTextView.delegate = self
        print(locationName)   // not important
        buttonColor.isEnabled = false    // not important
    }

    //Your other code

    func textViewDidChange(textView: UITextView) {
        if (textView.text != ""){
            buttonColor.setTitleColor(UIColor.blue, for: UIControlState.normal)
            buttonColor.isEnabled = true
            return
        }
        buttonColor.setTitleColor(UIColor.lightGray, for: UIControlState.normal)
        buttonColor.isEnabled = false
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...