【问题标题】:Trying to override NSView's drawRect from extension class试图从扩展类覆盖 NSView 的 drawRect
【发布时间】:2015-07-11 16:18:30
【问题描述】:

我正在用 Swift 设计一个 NSView 类扩展。在那个扩展类中,我试图用这个覆盖drawRect

extension NSView {


  override func drawRect(rect: NSRect) {


  }

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

什么?目标-C?我正在使用 swift。

发生了什么事?

【问题讨论】:

    标签: swift overriding class-extensions


    【解决方案1】:

    您是扩展而不是子类化然后覆盖一个已经由超类定义的方法。

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

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

    class MyView: NSView {
    
        override func drawRect(rect: NSRect) {
    
         // Your custom implementation ....
    
        } 
    }
    

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-24
      • 2017-06-28
      • 1970-01-01
      • 2017-11-30
      • 2011-11-27
      • 1970-01-01
      • 2018-09-30
      • 1970-01-01
      相关资源
      最近更新 更多