不幸的是,我在Internet上找不到任何有用的东西- 我想知道,在不使用Swift中的故事板或XIB文件的情况下,初始化应用程序实际上必须输入什么代码。我知道我必须有一个.swift名为的文件main。但是我不知道在那写什么(比如我需要autoreleasepool之类的东西?)。例如,我要NSMenu如何初始化和如何将a添加NSViewController到活动窗口(iOS的类似方法.rootViewController无济于事)。谢谢你的帮助 ;)
.swift
main
NSMenu
NSViewController
.rootViewController
编辑:实际上我不想@NSApplicationMain在前面使用AppDelegate。我宁愿知道那里到底发生了什么,然后自己做。
@NSApplicationMain
AppDelegate
如果您不想拥有@NSApplicationMain属性,请执行以下操作:
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: .resizable, backing: .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,0,100,100)) view.wantsLayer = true view.layer?.borderWidth = 2 view.layer?.borderColor = NSColor.red.cgColor self.view = view } }