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

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

好了,开始动手!

1.1 创建演示项目:StatusBarDemoApp

选取项目模版

项目名称

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

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

实现代码

1.3 添加图片资源

添加图片资源到项目工程中

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

项目运行结果

这时你点击状态栏上的图标,它没有任何反应,因为我们还没有给它添加事件响应的方法。我们希望点击它能够弹出一个视图,显示它的内容或者功能,下面我们就来接着实现它。 NSPopover 提供了在屏幕内容视图上显示额外信息内容的一种方式(其实这个类似于在iPad开发中是常见的UIPopoverPresentationController),它的定位相对与现有内容。 在ViewController中添加popover属性,并在viewDidLoad中进行初始化和配置。

1.4 现在ViewController.m实现代码:

添加popover代码,并设置

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

1.5 添加SBPopViewController

添加新文件

创建SBPopViewController,并使用xib

1.6 设置popviewController的view

设置SBPopViewController的视图内容

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

设置contentViewController

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

运行结果

关于这个练习项目的演示代码,有兴趣的同学可以在github来下载StatusBarDemo 下一篇,我们继续来实现关闭popover、 鼠标事件的监听,window窗口的处理以及应用退出的方法 祝大家玩的愉快~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏十月梦想

小程序页面跳转

使用组件  <navigator> 示例:  <navigator url='../test/test'>点击跳转</navigator>

1083
来自专栏做全栈攻城狮

程序员带你学习安卓开发系列-Android文件存储

输入帐号密码,并勾选记住帐号 ,点击登录时,保存帐号信息。下次登陆可以直接显示上次保存的QQ帐号。

1202
来自专栏技术博文

sublime Text3

sublime Text3实用功能和常用快捷键 PS:ST3在Mac OX与Windows不同平台下的快捷键差别很大。下面是针对windows平台的解说。 1....

30211
来自专栏赵俊的Java专栏

Hexo优化 --- 添加复制功能

7321
来自专栏CodingBlock

Android查缺补漏(View篇)--布局文件中的“@+id”和“@id”有什么区别?

Android布局文件中的“@+id”和“@id”有什么区别? +id表示为控件指定一个id(新增一个id),如: <cn.codingblock.view.c...

3158
来自专栏知无涯

WEB前端:element.style覆盖了我想修改的样式!

3908
来自专栏数据小魔方

Excel常用数据导入方法

今天给大家讲解Excel数据源的导入 ▽ excel支持的数据源类型有很多 今天只讲解常用的三种类型 Access文件、网页数据、文本数据 Access数据源导...

2997
来自专栏向治洪

微信小程序开发入门篇

本文档将带你一步步创建完成一个微信小程序,并可以在手机上体验该小程序的实际效果。 开发准备工作 获取微信小程序的 AppID 登录 https://mp.wei...

3666
来自专栏上善若水

013 mysql 忘记密码,修改密码

启动:sudo service mysql start 停止:sudo service mysql stop

1005
来自专栏不止是前端

Vue:(1)从80%搭建个人管理后台

88512

扫码关注云+社区

领取腾讯云代金券