macOS APP Without StoryBoard

本文最后更新于 2021年4月4日 晚上

本文主要介绍无 StoryBoard 方式的 macOS APP 实现, 并给出具体代码.

通过普通的 macOS APP 模板新建工程后, 进行如下步骤即可:

  1. 删除 Main.storyboard(包括 info.plist 中的入口).

  2. 添加 main.swift:

    1
    2
    3
    4
    import Cocoa

    NSApplication.shared.delegate = AppDelegate() // 设置应用代理
    _ = NSApplicationMain(CommandLine.argc, CommandLine.unsafeArgv) // 启动应用
  3. 修改 AppDelegate 实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import 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 注解.

  4. 修改 ViewController 实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    class 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.


macOS APP Without StoryBoard
https://blog.rayy.top/2020/07/11/2020-07-11-mac-dev-01/
作者
貘鸣
发布于
2020年7月11日
许可协议