Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)

项目开发是最有效果的学习途径(没有之一),现在我们从开发一个小的状态栏上的App入门,通过逐步实现功能,来渐渐上手熟悉Mac OSX上的基础控件使用方法。通过本练习,希望能够帮助有兴趣的同学掌握如下基础知识:

* NSStatusBar 控件的使用

* NSPopover 的基本使用

* (鼠标)事件监听方法

* 结束App的方法 

好了,开始动手!

1.1 创建演示项目:StatusBarDemoApp

Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)_第1张图片
选取项目模版
Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)_第2张图片
项目名称

在Mac OSX系统中,屏幕的右上角就是我们说的状态栏(NSStatusBar),一直是常驻应用的必争之地。我们只需要创建一个item ,然后将创建好的item加载到状态即可,我们只需要使用NSStatusBar的statusItemWithLength:方法就可以了(这个方法会创建好一个NSStatusItem,并且将它自动的添加到状态栏中)。

1.2 选中ViewController.m文件,添加代码

Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)_第3张图片
实现代码

1.3 添加图片资源

Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)_第4张图片
添加图片资源到项目工程中

如果没有出错,运行项目,你应该看到一个空的窗口,而且在屏幕的右上角已经出现了我们应用的常驻标志^_^,是不是感觉很容易啊~

项目运行结果

这时你点击状态栏上的图标,它没有任何反应,因为我们还没有给它添加事件响应的方法。我们希望点击它能够弹出一个视图,显示它的内容或者功能,下面我们就来接着实现它。

NSPopover 提供了在屏幕内容视图上显示额外信息内容的一种方式(其实这个类似于在iPad开发中是常见的UIPopoverPresentationController),它的定位相对与现有内容。

在ViewController中添加popover属性,并在viewDidLoad中进行初始化和配置。

1.4 现在ViewController.m实现代码:

Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)_第5张图片
添加popover代码,并设置

如果这时运行项目工行,我们尝试点击状态栏图标,系统会提示[General] The contentViewController ((null)) or contentViewController.view is nil.这个错误信息,是因为我们没有为popover设置一个可以显示的内容视图控制器,下面我们来创建一个NSViewController来管理popover的内容视图:

1.5 添加SBPopViewController

Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)_第6张图片
添加新文件
Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)_第7张图片
创建SBPopViewController,并使用xib

1.6 设置popviewController的view

Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)_第8张图片
设置SBPopViewController的视图内容

1.7 选中ViewController.m文件,实现代码

Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)_第9张图片
设置contentViewController

现在再次运行工程,如果没有错误,我们就可以看到大致类似下面的这样界面了,这样我们就实现了可以在系统状态栏中添加应用的常驻标志,点击它,并可以弹出一个内容展示窗口了。

Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)_第10张图片
运行结果

关于这个练习项目的演示代码,有兴趣的同学可以在github来下载StatusBarDemo

下一篇,我们继续来实现关闭popover、 鼠标事件的监听,window窗口的处理以及应用退出的方法

祝大家玩的愉快~

你可能感兴趣的:(Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一))