我正在用 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/