swift выдает ошибку Use of unresolved identifier 'countLable' хотя сountLable объявлен и привязан
вот в коде объявлен countLable
class ViewController: UIViewController {
@IBOutlet weak var countLable: UILabel!
@IBOutlet weak var textView: UITextView!
@IBOutlet weak var botomConstraint: NSLayoutConstraint!
а в extention он на него так ругается вот так Use of unresolved identifier 'countLable', не пойму что он от меня хочет
extension UIViewController: UITextViewDelegate {
public func textViewDidBeginEditing(_ textView: UITextView) { // срабратывает при тапе
textView.backgroundColor = .white
textView.textColor = .gray
}
public func textViewDidEndEditing(_ textView: UITextView) { // срабаотывает по окогчанию
textView.backgroundColor = self.view.backgroundColor
textView.textColor = .black
}
public func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
countLable.text = "\(textView.text.count)"
return textView.text.count + (text.count - range.length) <= 60
}
}
Вот тот же код но в старом xcode и при этом все работает
extension ViewController: UITextViewDelegate {
func textViewDidBeginEditing(_ textView: UITextView) {
textView.backgroundColor = .white
textView.textColor = .gray
} func textViewDidEndEditing(_ textView: UITextView) {
textView.backgroundColor = self.view.backgroundColor
textView.textColor = .black
} func textView(_ textView: UITextView, shouldChangeTextIn range:
NSRange, replacementText text: String) -> Bool {
countLable.text = "\(textView.text.count)" return
textView.text.count + (text.count - range.length) <= 60
}
}
Ответы (1 шт):
У вас написан extension к UIViewController, а нужно написать extension к конкретному контроллеру, чтобы "видеть" его свойства:
extension ViewController: UITextViewDelegate {...}
Extension (расширение) применяется к конкретной сущности, т.е. если вы пишете extension UIViewController {...}, то вы расширяете именно UIViewController - дополняете его новыми методами. В вашем случае вы хотите добавить методы к другому контроллеру, который называется ViewController, поэтому вам нужно писать extension ViewController {...}