这是一个没有任何花里胡哨的工作示例,已更新到 Swift 4.2。
它会根据您调用的函数创建一个带有和不带笔尖的裸窗口。
在 IB 中,到处取消选中“初始控制器”。要使 nib 版本正常工作,您必须为 IB 提供的窗口控制器提供“WindowController”的故事板 ID。
import Cocoa
@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, DebugHelper {
var myName: String = "AppDelegate"
var windowController: NSWindowController!
var window: NSWindow!
func applicationDidFinishLaunching(_ aNotification: Notification) {
//nib()
diy()
}
func nib() {
let storyboard = NSStoryboard(name: NSStoryboard.Name("Main"), bundle: nil)
guard let wc = storyboard.instantiateController(withIdentifier: "WindowController") as? NSWindowController else { return }
windowController = wc
wc.showWindow(self)
}
func diy() {
window = NSWindow()
window.styleMask = NSWindow.StyleMask(rawValue: 0xf)
window.backingType = .buffered
window.contentViewController = ViewController()
window.setFrame(NSRect(x: 700, y: 200, width: 500, height: 500), display: false)
windowController = NSWindowController()
windowController.contentViewController = window.contentViewController
windowController.window = window
windowController.showWindow(self)
}
func applicationWillTerminate(_ aNotification: Notification) {
// Insert code here to tear down your application
}
}
import Cocoa
class ViewController: NSViewController, DebugHelper {
var myName: String = "ViewController"
override func loadView() {
view = NSView()
}
}