OSX应用程序没有故事板或xib文件使用Swift

不幸的是,在互联网上没有发现任何有用的东西 – 我想知道,在 Swift中没有使用storyboard或XIB文件的情况下,我实际上必须输入什么代码才能初始化应用程序.我知道我必须有一个.swift文件叫main.但是我不知道该写什么(像我需要autoreleasepool或类似的东西).例如,我将如何初始化NSMenu,以及如何将NSViewController添加到活动窗口(iOS的类似的.rootViewController没有帮助).感谢任何帮助;)

编辑:
我实际上不想在AppDelegate前面使用@NSApplicationMain.我宁愿知道究竟发生在那里,然后自己做.

如果您不想拥有@NSApplicationMain属性,请执行以下操作:

>有一个文件main.swift
>添加以下顶级代码

import Cocoa

let delegate = AppDelegate() //alloc main app's delegate class
NSApplication.sharedApplication().delegate = delegate //set as app's delegate

// Old versions:
// NSApplicationMain(C_ARGC,C_ARGV)
NSApplicationMain(Process.argc,Process.unsafeArgv);  //start of run loop

其余的应该在你的应用程序委托中.例如.:

import Cocoa

class AppDelegate: NSObject,NSApplicationDelegate {
    var newWindow: NSWindow?
    var controller: ViewController?

    func applicationDidFinishLaunching(aNotification: NSNotification) {
        newWindow = NSWindow(contentRect: NSMakeRect(10,10,300,300),styleMask: NSResizableWindowMask,backing: NSbackingStoreType.Buffered,defer: false)

        controller = ViewController()
        let content = newWindow!.contentView! as NSView
        let view = controller!.view
        content.addSubview(view)

        newWindow!.makeKeyAndOrderFront(nil)
    }
}

那么你有一个viewController

import Cocoa

class ViewController : NSViewController {
    override func loadView() {
        let view = NSView(frame: NSMakeRect(0,100,100))
        view.wantsLayer = true
        view.layer?.borderWidth = 2
        view.layer?.borderColor = NSColor.redColor().CGColor
        self.view = view
    }
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...