MacOS开发笔记(一): HelloWorld

此系列笔记为阅读书籍 Cocoa Programming for OS X(5th Edition) 的笔记
有兴趣的朋友推荐阅读原书, 以获得更完整的知识点.

新建项目

MacOS开发笔记(一): HelloWorld_第1张图片
选择CocoaApplication
MacOS开发笔记(一): HelloWorld_第2张图片
和iOS开发一样, 设定项目名称

在图二中,如果要使用文档, 把Create Document-Based Application 选项勾选上.

新建MainWindowController, 并且创建Xib

MacOS开发笔记(一): HelloWorld_第3张图片
Cmd+N调出新建面板, 选择Cocoa Class
MacOS开发笔记(一): HelloWorld_第4张图片
勾选 create XIB file

设定窗口名称

MacOS开发笔记(一): HelloWorld_第5张图片
选择MainWindowController.xib, 把Title设置成MyWindow

删除MainMenu中默认的Window

MacOS开发笔记(一): HelloWorld_第6张图片
选择Window, 点Delete删除

在AppDelegate中绑定之前创建的MainWindowController

import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

//    @IBOutlet weak var window: NSWindow!
    
    //注册一个全局变量
    var mainWC : MainWindowController?
    
    func applicationDidFinishLaunching(aNotification: NSNotification) {
        //通过Nib文件实例化一个 WindowController
        let _mainWC = MainWindowController(windowNibName: "MainWindowController")
        //显示窗口
        _mainWC.showWindow(self)
        //绑定变量
        self.mainWC = _mainWC
    }

    func applicationWillTerminate(aNotification: NSNotification) {
        // Insert code here to tear down your application
    }

}

运行程序, MyWindow被创建出来了

MacOS开发笔记(一): HelloWorld_第7张图片
HelloWorld

一种更科学的绑定方法

  1. 在AppDelegate.swift中并不需要设置"windowNibName", 直接使用默认的构造方法
import Cocoa

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate {

//    @IBOutlet weak var window: NSWindow!
    
    //注册一个全局变量
    var mainWC : MainWindowController?
    
    func applicationDidFinishLaunching(aNotification: NSNotification) {
        let _mainWC = MainWindowController()
        _mainWC.showWindow(self)
        self.mainWC = _mainWC
    }

    func applicationWillTerminate(aNotification: NSNotification) {
        // Insert code here to tear down your application
    }

}

2.在MainWindowController.swift中重写windowNibName构造方法, 设置默认的NibName

    override var windowNibName: String? {
        return "MainWindowController"
    }

你可能感兴趣的:(MacOS开发笔记(一): HelloWorld)