前言

国庆的长假没有旅游的计划,最近空气又差,只能窝在家里自学一点新的东西。虽然没有任何 iOS 或者是 OS X 开发的经验,但是还是对 OS X 程序的开发有点兴趣,就准备找点资料学习,由于 OS X 系统本身市场占有率不高,Swift 又发布没有多久,几乎找不到任何用 Swift 开发的中文资料,甚至英文的也很少,所幸还是找到了一些视频资料,今天学习的内容是:Using Storyboards for OS X。视频链接(显然是需要翻墙的,且文章经过笔者修改具体内容与视频不同):https://www.youtube.com/watch?v=Q5bLEwewO7M

01 使用 Xcode 创建一个使用 Storyboards 的 OS X 应用

什么是 Storyboards ?

Storyboards 是 Apple 推出的一种全新高效的 UI 制作方式,用来代替旧版的 XIB (XML Interface Builder)

创建成功之后我们来看一下目录文件:

系统会默认在 main.storyboard 中创建一个 View Controller 并且有一个与之相关联的文件 ViewController.swift

02 接下来我们添加一些控件

添加控件时,仅需要进行简单的拖拽即可。首先选择 main.storyboard,并且在右上角中可以调整 Xcode 的窗口布局,打开第三个时,可以出现拖拽控件的窗口。在右下角可以选择你要拖拽的控件,我选择了 Color WellButton,你可以通过右下角底部的 filter 来输入内容进行快速筛选。

03 绑定事件

这个时候我们打开右上方从右往左数第五个图标,选择 Show the Assitant editor,然后我们能看到右边是 ViewController.swift,左边是 main.storyboard 的视图文件。接下来,我们选中控件,按住 ctrl 键,将控件往 swift 文件中进行拖拽会出现如下图所示:

我们可以选择插入一个 Outlet 属性或者 Action 的动作,Outlet 是一个属性,属性就是一个变量,Action 是一个动作也就是一个函数,创建时需要给他们赋予一个变量名,如:

@IBOutlet weak var well: NSColorWell!   
@IBAction func wellAction(sender: AnyObject) {
}

04 添加逻辑及运行

我们再添加一个控件 Label ,我们希望完成一个小功能:当我修改控件的颜色后,点击按钮,使 Label 改变文字为:RGB: + RGB色值,如:『RGB:172CFF』。

根据 2,3 的步骤完成属性和事件的绑定,我们在按钮事件中完成如下代码:

@IBAction func clickButton(sender: AnyObject) {

    var iRed = String().stringByAppendingFormat("%02x", Int(round(well.color.redComponent * 255.0)))
    var iGreen = String().stringByAppendingFormat("%02x", Int(round(well.color.greenComponent * 255.0)))
    var iBlue = String().stringByAppendingFormat("%02x", Int(round(well.color.blueComponent * 255.0)))

    iRed = iRed.uppercaseString
    iGreen = iGreen.uppercaseString
    iBlue = iBlue.uppercaseString

    colorLabel.stringValue = "RGB:" + iRed + iGreen + iBlue
}

well.color.redCompent 可以获取颜色 Red 色值,乘以 255 转化为十进制的整数,然后通过 stringByAppendingFormat 的方法将十进制转化为十六进制并且转化为大写,最后将内容赋给 colorLabel.stringValue

最终运行效果如下:

Comments
Write a Comment