国内做 iOS 开发的开发者很多,但是 OS X 开发者数量却远远不及。与此同时,有关 OS X 开发的文章和参考资料也十分少,自学起来比较困难,所以我决定在这个文集中记录一些 OS X 开发的点滴。
第一篇我们来点简单的。
建立项目
首先启动 Xcode,选择新建项目,项目模板当然就是 OS X Application 啦
下面是选择使用的语言和一些技术,我这里比较推荐大家选择 Swift 语言,当然你也可以使用你熟悉 Objective-C,然后勾选 Use Storyboards 选项,因为使用 Storyboard 可以极大地提高你的开发效率。
What's in Storyboard
打开 Main.storyboard
文件,我们看看里面有什么内容。
OMG,感觉好复杂,有三个视觉元素:主菜单、窗口、视图。这些分别都是什么鬼?
我们知道每个 OS X 应用都有一个单独的菜单,那么最上面的菜单就是整个应用显示在状态栏上的主菜单。
接下来是窗口,我们可以看到窗口左侧有个箭头,这个箭头的意思是,该窗口是启动窗口,也就是当应用一启动,这个窗口就会出现。
再往下是视图,它表示了窗口所显示内容,你完全可以把它当做 iOS 的 ViewController。我们可以将窗口和视图之间的关联去掉,这样窗口就什么内容都没有了。但是启动时窗口还会显示。但如果将窗口左侧的箭头去掉(取消选择检查器中的 Is Initial Controller 选项),那么程序启动时就什么都不会出现了。
下面我们去掉默认启动的窗口,来看看如何用代码控制一个窗口的显示。我们转到 AppDelegate.swift
中,可以看到下面几个声明周期函数:
当应用程序启动之后,
applicationDidFinishLaunching(:_)
函数就会被调用,与 iOS 稍有不同的是,我们必须要设置一个 Storyboard 或 Xib 作为启动界面,因为这个启动界面中含有程序依赖的 NSApplication
对象,如果没有设置,那么这两个周期函数就不会执行。启动界面设置
既然我们已经将 Main.storyboard
作为启动界面了,那么我们就可以在上面的周期函数中拿到要显示的窗口,并显示它。
不得不吐槽一下 Cocoa 的 API 设计,显示窗口的函数竟然叫这么个名字...
可以看出基本都是套路,首先拿到 Storyboard ,然后用标识符来实例化一个控制器,得到的 WindowController 先调用一下 showWindow(:_)
,然后调用它所控制的窗口的 makeKeyAndOrderFront(:_)
方法,这样窗口就显示了。
Hello, world!
下面我们在窗口视图里放点东西:
然后建立 Outlet,这点和 iOS 是一样的。
创建一个新的视图控制器:
拉线建立一个 Segue,我们要在点击按钮时以 Sheet 的样式显示这个视图。
再拉线将 "Dismiss" 按钮与 dissmissController 动作绑定。
这里有个小细节,默认按钮如何设置?在以前的 OS X 版本中,默认按钮就是蓝色闪闪发光的那个样子。我们想将 "Dismiss" 按钮设置为默认按钮,就需要将其快捷键设置为 Return 键,没错就是这样😂
设置完后我们就会发现这个按钮变成蓝色了。
响应按钮点击事件:
运行一下看看效果:
OK,今天就先写这么多了~
网友评论