本文主要介绍无 StoryBoard 方式的 macOS APP 实现, 并给出具体代码.
通过普通的 macOS APP 模板新建工程后, 进行如下步骤即可:
-
删除
Main.storyboard(包括 info.plist 中的入口). -
添加 main.swift:
swiftimport Cocoa NSApplication.shared.delegate = AppDelegate() // 设置应用代理 _ = NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv) // 启动应用 -
修改 AppDelegate 实现:
swiftimport Cocoa class AppDelegate: NSObject, NSApplicationDelegate { var window: NSWindow? func applicationDidFinishLaunching(_ aNotification: Notification) { let mask: NSWindow.StyleMask = [.miniaturizable, .closable, .resizable, .titled] window = NSWindow(contentRect: .zero, styleMask: mask, backing: .buffered, defer: false) window?.makeKeyAndOrderFront(nil) window?.contentViewController = ViewController() window?.center() } }注意这里移除了
@NSApplicationMain注解. -
修改 ViewController 实现:
swiftclass RootContentViewController: NSViewController { override func viewDidLoad() { super.viewDidLoad() } override func loadView() { view = NSView(frame: NSRect(x: 0, y: 0, width: 480, height: 480)) } }
经过上述步骤完成了 APP 的入口配置, 这样就可以开始后续的开发了, 如果需要 menu, 可以在 NSApplication.shared.mainMenu 上设置 menu.