用Swift写一个OSX菜单栏天气栏

先上一个app运行截图›››

就是这个样子的。

首先,我们需要一个提供天气的接口,这个我是在心知天气注册的号,弄得一个接口。完全免费。。

接口弄完,我们创建一个swift工程,在mainmenu.xib上搭建好界面,

如下图:

在对应的menucontroler里面拖好线

下面就是一些代码的编写

先封装一个网络连接的类,由于是练习,所以写的比较随意。

import Cocoa

let api_src = "alav8wplbvpkfmq4"

let api_id = "UBEB9D6270"

let baseurl = "https://api.thinkpage.cn/v3/weather/now.json"

// 天气model

class WetherModel: NSObject {

var location:String?

var language:String?

var unit:String?

}

/// 网络连接

class NetLink: NSObject {

let Session:NSURLSession = NSURLSession.sharedSession()

// 获取天气信息 GET

func GETWetherInfo(model:WetherModel!,CallBack: (data:NSData?, response:NSURLResponse?, err:NSError?) -> Void) -> () {

//

let queryItem1 = NSURLQueryItem(name: "key", value: api_src)

let queryItem2 = NSURLQueryItem(name: "location", value: model.location)

let queryItem3 = NSURLQueryItem(name: "language", value: model.language)

let queryItem4 = NSURLQueryItem(name: "unit", value: model.unit)

let urlComponents = NSURLComponents(string: baseurl)!

urlComponents.queryItems = [queryItem1,queryItem2,queryItem3,queryItem4]

let regURL = urlComponents.URL!

let request = NSMutableURLRequest(URL: regURL)

request.HTTPMethod = "GET"

let task = Session.dataTaskWithRequest(request) { (data, response, error) in

CallBack(data: data,response: response,err: error)

}

task.resume()

}

}

在controller中做数据处理和展示

效果图如下

详细代码:https://github.com/JLHuu/MyWeatherBar.git

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容