2

我有以下类代表我的 iOS 8 自定义键盘中的按钮:

internal class KeyButton: UIButton {

    required init(char: Character) {
        super.init()
    }


    required init(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

由于 KeyButton 未通过storyboard构造函数初始化,(coder: NSCoder)因此永远不会被调用。

问题是我需要实现(coder: NSCoder)构造函数,当我运行应用程序时,我plugin interrupted在实例化时收到异常KeyButton

为什么我需要实现(coder: NSCoder)构造函数,尽管我以编程方式实例化所有内容

4

1 回答 1

1

它与编码器无关。UIButtoninit()调用init(frame: CGRect),你还没有实现。添加以下内容,您应该一切顺利...

override init(frame: CGRect ) {
    super.init(frame: frame)
    println("Button frame allocated")
}
于 2014-11-21T12:32:26.810 回答