swift - 试图从扩展类覆盖 NSView 的 drawRect

标签 swift overriding class-extensions

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

extension NSView {


  override func drawRect(rect: NSRect) {


  }

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

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

这是怎么回事?

最佳答案

您是在扩展,而不是子类化,然后覆盖一个已经由父类(super class)定义的方法。

drawRect 已经被 NSView 定义,这就是为什么与already defined ... 发生冲突的原因。

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

class MyView: NSView {

    override func drawRect(rect: NSRect) {

     // Your custom implementation ....

    } 
}

希望对你有帮助

关于swift - 试图从扩展类覆盖 NSView 的 drawRect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31359178/

相关文章:

Flutter 扩展方法不起作用,它说 "undefined class"和 "requires the extension-methods language feature"

python - 如何在Python中为str子代覆盖ord行为?

java - 如何获取类的 View ,该类扩展了扩展 fragment/Activity 等的类

python Pandas : How do I apply a function requiring an extended class (datetime)?

ios - uiimage 模拟器图像无法缩放

Delphi - 向下转换对象不调用基本方法

built-in - 如何获取覆盖的内置函数的句​​柄?

ios - 获取 UINavigationBar 的前景色

swift - 使用 RxSwift 和 RxRealm 对成员 'items(cellIdentifier:celltype:)' 的引用不明确

ios - textViewDidChange 仅在键入完整字符串时发生变化。我想让它检查每个字符