试图从扩展 class 覆盖 NSView 的 drawRect

Trying to override NSView's drawRect from extension class

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

覆盖 drawRect
extension NSView {


  override func drawRect(rect: NSRect) {


  }

有一个错误指向重写并说 方法没有重写它的 superclass 中的任何方法...方法 drawRect with Objective-C (???)选择器 'drawRect' 与之前使用相同 Objective-C 的声明冲突 选择器

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

这是怎么回事?

你是扩展而不是子类化然后重写一个已经被定义的方法超类.

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

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

class MyView: NSView {

    override func drawRect(rect: NSRect) {

     // Your custom implementation ....

    } 
}

希望这对您有所帮助