【问题标题】:How to load NSViewController on a NSApplicationDelegate如何在 NSApplicationDelegate 上加载 NSViewController
【发布时间】:2015-12-19 16:49:55
【问题描述】:

我正在尝试在我的 appDelegate 类上加载 ViewController。像这样:

class AppDelegate: NSObject, NSApplicationDelegate {

  @IBOutlet weak var window: NSWindow!

  var viewController = HomeViewController()

  func applicationDidFinishLaunching(aNotification: NSNotification) {
     self.window.backgroundColor = NSColor(rgba: "#02303A")
     self.viewController.view.frame = CGRectMake(0, 0, CGRectGetWidth(self.window.frame), CGRectGetHeight(self.window.frame))
     self.window.contentView?.addSubview(self.viewController.view)
  }

}

我的视图控制器很简单,只是:

import PureLayout

class HomeViewController : NSViewController {

  let search : NSSearchField = {
    let search = NSSearchField.newAutoLayoutView()
    return search
  }()

  override func loadView() {
    super.loadView()
    self.view.layer?.backgroundColor = NSColor.blackColor().CGColor
    self.view.addSubview(search)
  }

}

但是当我编译项目时,日志返回:

带有完整源代码的仓库:Github

有人知道可以是什么吗?我在我的 iOS 项目上执行此操作,并且效果很好。

【问题讨论】:

    标签: swift macos appdelegate


    【解决方案1】:
    1. 您没有属于您的视图控制器的 xib 文件,因此第一步是为 视图添加一个新文件:

    1. 在您新创建的 xib 文件中,选择 File's Owner 占位符,然后在 Inspector 中,将其自定义类设置为您的视图控制器子类:

    1. 最后,将视图控制器 (文件的所有者)view 出口连接到自定义视图对象。

    (在此视图中为视图控制器构建用户界面,而不是在主 nib 中。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 2016-12-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多