Попытка переопределить drawRect NSView из класса расширения

Я разрабатываю расширение класса NSView в Swift. Внутри этого класса расширения я пытаюсь переопределить drawRect, используя этот

extension NSView {


  override func drawRect(rect: NSRect) {


  }

Существует ошибка, указывающая на переопределение и говорящая, что Метод не переопределяет какой-либо метод из своего суперкласса... Метод drawRect с селектором Objective-C (???) 'drawRect' конфликтует с предыдущим объявлением с той же целью- Селектор C

Какая? Цель-C? Я использую свифт.

Что происходит?


person Duck    schedule 11.07.2015    source источник


Ответы (1)


Вы расширяете не подкласс, а затем переопределяете метод, который уже был определен суперклассом.

drawRect уже определен NSView, поэтому конфликт с уже определен...

Чтобы создать собственное представление, вы должны определить свой собственный подкласс NSView и переопределить реализацию вашего подкласса drawRect.

class MyView: NSView {

    override func drawRect(rect: NSRect) {

     // Your custom implementation ....

    } 
}

Надеюсь это поможет

person Matteo Piombo    schedule 11.07.2015