Не удалось установить (titleText) определяемое пользователем проверяемое свойство - PullRequest
0 голосов
/ 12 июля 2020

У меня есть UIViewController, «MainViewController» -

class MainViewController: UIViewController {
    
    @IBOutlet weak var segmentControl: UISegmentedControl!
    @IBOutlet weak var userNameTextField: UITextField!
    @IBOutlet weak var passwordTextField: UITextField!
    @IBOutlet weak var controlButton: RoundedCornerButton!
    
    override func viewDidLoad() {
        super.viewDidLoad()
       
    }
    
    @IBAction func switchBetweenSignInAndRegisterOption(_ sender: UISegmentedControl) {
        if sender.selectedSegmentIndex == 0{
            self.controlButton.text = "Sign In"
        }
        else{
            self.controlButton.text = "Register"
        }
    }
}

введите описание изображения здесь

Метод действия - switchBetweenSignInAndRegisterOption(_:) прикреплен к объекту segmentControl, и когда его selectedSegmentIndex изменяется, свойство text my RoundedCornerButton обновляется. Ниже приведен код для RoundedCornerButton-

class RoundedCornerButton: UIButton {
 
    var text: String = "Sign In"{
        didSet{
            setNeedsLayout()
        }
    }
    override func layoutSubviews() {
        super.layoutSubviews()
        self.layer.borderWidth = 2.0
        self.layer.cornerRadius = (self.bounds.size.width * 0.025)
        self.layer.borderColor = UIColor.green.cgColor
        self.setTitle(text, for: .normal)
        self.titleLabel?.minimumScaleFactor = 0.50
       
    }
}

. Он работает с точки зрения функциональности, но в консоли отображается следующая ошибка. Я не понимаю, что могло пойти не так.

[ProjectName][12943:1296641] Failed to set (titleText) user defined inspected property on ([ProjectName].RoundedCornerButton): 
[<[ProjectName].RoundedCornerButton 0x7f8a13d0bd90> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key titleText.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 12 июля 2020

Я обнаружил проблему, хотя понятия не имею, как она осталась в моей раскадровке, потому что я удалил @IBInspectable из кода CustomButton.

Когда я искал и не мог найти titleText где-либо в мой код и даже в пользовательском интерфейсе раскадровки я перешел к исходному коду раскадровки, щелкнув его правой кнопкой мыши и выбрав вариант исходного кода. К моему полному удивлению, был следующий фрагмент кода:

<userDefinedRuntimeAttributes>
     <userDefinedRuntimeAttribute type="string" keyPath="titleText" value="Register"/>
</userDefinedRuntimeAttributes>

По-видимому, хотя я удалил @IBInspectable из своего кода, он остался в моей раскадровке. Я удалил эту деталь, и теперь она работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...