Расширение раскадровки UIButton для willSet of isEnabled не вызывается - PullRequest
4 голосов
/ 16 июня 2020

Я пытаюсь создать расширение UIButton, которое что-то печатает при установке значения isEnabled. Но вроде не срабатывает. (Не печатает):

extension UIButton {
    override open var isEnabled: Bool {
        willSet {
            print("About to set isEnabled to \(newValue)")
            // print isn't triggered when I set isEnabled later
        }
    }
}

Но это работает, когда я использую расширение в настраиваемом подклассе UIButton:

class CustomUIButton: UIButton {}

extension CustomUIButton {
    override open var isEnabled: Bool {
        willSet {
            print("About to set isEnabled to \(newValue)")
            // print is triggered when I set isEnabled later
        }
    }
}

UIButtons добавляется в раскадровку, когда это не работает, но если они добавлены в код, он работает должным образом. Почему это? И как я могу заставить его работать на UIButton, добавленных в раскадровку?

...