swift 纯代码创建mac osx app入口页面的方法.

百度无数,谷歌无数,都特么只有xib和storyboard的文章,但是个人就是喜欢纯代码,所以试验了无数次总结了下面的方法.

第一步创建工程,然后在工程里面删除 storyboard.
然后在AppDelegate 里面删除@NSApplicationMain这一句.
在info.plist里面删除NSMainStoryboardFile这一行.
这时候App就不会自动查找storyboard了.

第二步创建一个main.swift文件,代码如下:

import Cocoa
let delegate = AppDelegate()
NSApplication.shared().delegate = delegate
NSApplication.shared().run()

第三步在AppDelegate里面加上如下代码:

import Cocoa
class AppDelegate: NSObject, NSApplicationDelegate {
    var newWindow: NSWindow?
    var controller: ViewController?
    func applicationDidFinishLaunching(_ aNotification: Notification) {
        newWindow = NSWindow(contentRect: NSMakeRect(200, 200, 300, 300), styleMask: .fullScreen, backing: .buffered, defer: false)
        controller = ViewController()
        let content = newWindow?.contentView!
        let view = controller?.view
        content?.addSubview(view!)
        newWindow?.makeKeyAndOrderFront(nil)
    }
}

第四步在ViewController里面加上如下代码:

import Cocoa
class ViewController: NSViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
    }
    override func loadView() {
        let view = NSView(frame: NSMakeRect(0, 0, 100, 100))
        view.wantsLayer = true
        view.layer?.borderWidth = 2
        view.layer?.borderColor = NSColor.red.cgColor
        self.view = view
    }
}

编译运行一下就会出现一个最原始的窗口,然后自己在里面加各种控件就好了

QQ20170806-134049@2x.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,076评论 25 708
  • 突然, 没有任何的准备, 一闪就消失了, 不必悲伤只是徒劳了。 时间会抹去, 即便你当它是美好的记忆, 可是你又有...
    迁于乔木阅读 306评论 0 0
  • “本文参加#未完待续,就要表白#活动,本人承诺,文章内容为原创,且未在其他平台发表过。” 文/南塔 1. 雨一直下...
    安徽外国语学院阅读 296评论 10 3
  • 从人人都是产品经理网站转载 年年底的时候,我(Firstround Review 主编)在 Facebook 公司...
    袁少成阅读 417评论 0 3
  • 作业: 十二星座,我是摩羯座。 感觉好有趣啊~期待明天~
    建晋阅读 190评论 1 1