前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mac开发基础练习:制作一个状态栏(NSStatusBar)上的App(一)

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

作者头像
代码行者
发布2018-08-23 11:22:54
2K0
发布2018-08-23 11:22:54
举报
文章被收录于专栏:macOS 开发学习macOS 开发学习

项目开发是最有效果的学习途径(没有之一),现在我们从开发一个小的状态栏上的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窗口的处理以及应用退出的方法 祝大家玩的愉快~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.11.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 好了,开始动手!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档