我使用 swift 3.0.1 在 maxOS 10.11.6 上的 Xocode 8.0 中创建了一个基于文档的 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 实例是在我的控制之外创建的,我应该怎么做?