试图从扩展类覆盖NSView的drawRect

时间:2015-07-11 16:18:31

标签: swift override class-extensions

我正在Swift中设计一个NSView类扩展。在该扩展类中,我试图使用此

覆盖drawRect
extension NSView {


  override func drawRect(rect: NSRect) {


  }

指向覆盖的错误并说方法不会覆盖其超类中的任何方法...方法drawRect与Objective-C(???)选择器'drawRect'与之前的声明冲突与相同的Objective-C选择器

什么? Objective-C的?我正在使用swift。

发生了什么事?

1 个答案:

答案 0 :(得分:2)

扩展而非子类化,然后覆盖已由超类定义的方法。< / p>

drawRect已由NSView定义,这就是为什么与已经定义的冲突...

为了进行自定义视图,您需要定义自己的NSView子类并覆盖子类的drawRect实现。

class MyView: NSView {

    override func drawRect(rect: NSRect) {

     // Your custom implementation ....

    } 
}

希望这有帮助