已编译可识别子类化的NSWindow实例

问题描述 投票:1回答:1

我像这样子化了NSWindow。

class MainWindow : NSWindow
{ var bo : Bo?

  override func keyDown(with event: NSEvent) {
    //super.keyDown(with: event)
    print("Keydown \(event.keyCode) - modifier \(event.modifierFlags)  char: \(event.characters)")

    if (bo != nil && event.characters == "+") { 
      // do something with bo
    }
  }

  public func setBo(_ bo : Bo)
  { self.bo = bo
  }

}

在AppDelegate中,我像这样实例化一个窗口

window = MainWindow(   
        contentRect: NSRect(x: 0, y: 0, width: 480, height: 300),
        styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView],
        backing: .buffered, defer: false)

效果很好,将打印出键盘事件。

但是打电话时>>

window.setBo(bo)

编译器状态为Value of type 'NSWindow' has no member 'setBo'

我像这样子化了NSWindow。类MainWindow:NSWindow {var bo:Bo?覆盖func keyDown(带有事件:NSEvent){//super.keyDown(带有事件)print(“ Keydown \(event.keyCode)-...

swift macos appkit
1个回答
1
投票

将AppDelegate中的声明更新为

© www.soinside.com 2019 - 2024. All rights reserved.