Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 已编译的不识别子类NSWindow实例_Swift_Macos_Appkit - Fatal编程技术网

Swift 已编译的不识别子类NSWindow实例

Swift 已编译的不识别子类NSWindow实例,swift,macos,appkit,Swift,Macos,Appkit,我像这样子类化了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 (b

我像这样子类化了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)

编译器声明类型为“NSWindow”的
值在AppDelegate中没有成员“setBo”
更新声明为

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

    var window: MainWindow!  // << here !!
@NSApplicationMain
类AppDelegate:NSObject,NSApplicationDelegate{
var窗口:主窗口//