我使用swift 3.0.1在maxOS 10.11.6上的Xocode 8.0中创建了一个基于Document的Cocoa项目。我删除了mainMenu.xib,document.xib,修改了infolist,然后添加了我自己的main函数。但是我根本不使用Interface Builder。
在Document.swift中,我删除了windowNibFille变量,并覆盖makeWindowController()函数跟随:
override func makeWindowControllers() {
let mainWindow = NSWindow(contentRect: NSMakeRect(0, 0, NSScreen.main()!.frame.width/2, NSScreen.main()!.frame.height/2), styleMask: [NSTitledWindowMask, NSResizableWindowMask, NSMiniaturizableWindowMask, NSClosableWindowMask], backing: NSBackingStoreType.buffered, defer: false)
mainWindow.isOpaque = false
mainWindow.center()
mainWindow.isMovableByWindowBackground = true
mainWindow.makeKeyAndOrderFront(nil)
let mainWindowController = NSWindowController(window: mainWindow)
addWindowController(mainWindowController)
}
我没有做任何其他事情。如果我构建项目,我不应该得到运行已编译应用程序的菜单,窗口,文档,因为我没有实例化任何NSDocumentController实例,也没有实例化NSDocuement和NSWindow实例。
但他的实际情况是我运行了该项目,显示了一个名为untitled的窗口。这很烦人,似乎有些不可靠的代码存在于一个几乎空的项目中。我想在打开无标题文档之前做一些事情,如果从我的控件中创建了一个NSDocumentController实例,我应该怎么做呢?