微信号:GirlsCode

介绍:我的世界不仅只有代码~

【学习】Mac OS X 应用程序开发笔记

2016-03-12 09:51 nycode

前言

上学的时候就想学习开发 PC 客户端,不过上学时不务正业,所以 Windows 的软件开发一直没学明白。学了 iOS 的开发后,一直想着可以借机再学习一下 Mac OS X 应用的开发,有了基础学什么都不会太吃力。所以,趁着无业休假期间,我就抱着玩的心态开始做第一个 Mac 的应用。


从 iOS 到 Mac OS X

2.1 准备工作

默认阅读这篇文章的亲已经有了 Mac OS X 操作系统的电脑,也默认你已经下载安装好 Xcode ,其他的就直接动手做吧。


2.2 做什么

在任何编程语言入门的时候,都会先做个「 Hello World 」,这次我不想只做一个显示字符串的软件,那样也太low,至少来点交互嘛。所以,就做一个点击按钮,计算点击次数的小软件吧~ 😁


2.3 怎么开始

在网上搜了 “ Mac OS X 编程 ” 的资料,发现 Mac OS X 的开发资料很少,大部分是 iOS 的。干脆直接上手做,反正有苹果文档。只不过,做的时候发现 Mac OS 应用的具体开发还是和 iOS 应用开发有差异,比如具体的图形控件的类不一样,在 iOS 中有特定的控件 UILabel ,而在 Mac OS X 中并不是 UIKit 这个框架的视图类,而是叫 NSTextField ,但是可以稍微修改一下属性就能当作 label 来用了。


2.4 具体实现

2.4.1 创建项目



打开 Xcode ,选择创建新项目。创建 Mac OS X 的应用,与 iOS 的类似,但要选择 “OS X” 下的 Application ,选择 “ Cocoa Application” 创建。


2.4.2 填写项目的基本信息


我把 “ Use Storyboards ” 勾选上了,这样创建图形界面就不那么麻烦,毕竟 Mac OS 的图形控件我不熟悉,另外这样做也能通过 iOS 中 Storyboard 的使用来快速熟悉 Mac OS X 的开发。

然后,下一步,创建。


2.4.3 观察

观察创建完成的项目,基本布局和 iOS 无异,但是打开 Main.storyboard 文件就会发现很大的不同。



Mac OS X 的故事板相较于 iOS 的故事板多了「 Main Menu 」「 Window Controller 」

显然, UI 控件还是要拖拽到 View Controller 区域中的(不要问为什么,因为直觉告诉我这么做~)


2.4.4 拖拽控件 && 写代码

 1) 拖拽 Button

  • 在 「 Object Library 」中搜索 button 关键字,然后拖进 Storyboard 中。



  • 和 iOS 类似,按住 Control 键,拖拽出蓝线,在 View Controller 中创建一个方法,命名为 click。



2) 拖拽 Label

  • 搜索 label ,拖到 Storyboard 里

  • 关联到 View Controller 的代码中

按住 Control 键,拖拽到 ViewController.m 文件中。( 注意要先创建一个扩展,不然就需要拖拽到 ViewController.h 文件中 )



在和代码关联 label 时,与 iOS 不同的是,没有 UILabel 这样的控件,只有 NSTextField 这个类。这应该也是为了区分 iOS 和 Mac OS X 的视图结构来做的吧。


3) 少许代码

把 ViewController.m 文件中的代码做如下修改

import "ViewController.h"

@interface ViewController ()

@property (weak) IBOutlet NSTextField *clickTime;

@end

@implementation ViewController

static NSInteger count = 0;

- (void)viewDidLoad {

[super viewDidLoad]; // Do any additional setup after loading the view.

self.clickTime.editable = NO;

}

- (void)setRepresentedObject:(id)representedObject {

[super setRepresentedObject:representedObject];

}

-  (IBAction)click:(id)sender {

count ++;

NSString *countString = [NSString stringWithFormat:@"Click %ld Times", (long)count];

NSLog(@"%@", countString);

self.clickTime.stringValue = countString;

}

@end


4) 运行一下试试

Command + R 直接运行~效果如图



思考总结


至此,我便轻松入门了 Mac OS X 的应用开发了😉。这个软件确实很简单,不过还是从中能学到最重要的一点——学习一门新的技术,一个新的技能,要想快速并且深刻地掌握就应该联系已经掌握的知识技能,并通过既有的技能树,进行技能补完。或者说,就是利用自己熟悉的东西,去学习掌握不熟悉的东西,并且找到两者的区别和联系,加深理解并掌握。


通过这个简单的练习,我更深刻地体会到苹果的生态是多赞——我学会了 iOS ,很快就能上手 Mac OS X ,学会了 Objective-C 很快就又能学会 Swift —— 我想表达的意思是,就我个人的开发感受来说,苹果为开发者提供了健全的文档,和统一的开发环境和开发体系,这种整体的和谐就像自然生态一样,彼此息息相关,相互独立又有联系。


学无止尽,我最开心的就是,我一直在前进。当然,前路依然遥远。不过,正是如此,才不断进步。所以,“路漫漫其修远兮,吾将上下而求索”,愿共勉。


  来尽情地赏我吧~  


呐~亲如果觉得这篇文章有收获呢,就扫一下二维码搭赏我吧~~ 😁  ~~

不要害羞嘛~打赏一下又不会怀孕~~ 😘



 
GirlsCode 更多文章 一次与甲方的面对面交流后的思考 iOS完全自学手册——[一]Ready?No! iOS完全自学手册——[二]Hello World 人生苦旅 写作的本源
猜您喜欢 关系型数据库“无作为” NoSQL攻城掠地 QTest团建的那些事儿 谈谈产品经理 2016:黑鸭子年度最佳开源新秀奖 Python 爱好者专用技术头条