MacOS的菜单状态栏App添加饼型进度

猴子原创,欢迎转载。转载请注明: 转载自Cocos2Der-CSDN,谢谢!

原文地址: http://blog.csdn.net/cocos2der/article/details/52075418

使用swift如何开发一个MacOS的状态栏App,上一篇已经讲了。里面我忘记提如何修改状态icon为饼型进度。比如App在处理什么事情的时候,可以添加进度状态提示用户。如下图所示:

/// 显示状态栏菜单饼型进度
    private func showStatusItemProgress() {
        if let button = statusItem.button {
            // FIXME: it works, but obviously not good.
            button.subviews.removeAll()
        }
        if let button = statusItem.button {
            // FIXME: it works, but obviously not good.
            let frame = NSRect(x: 6, y: 2, width: 18, height: 18)
            let progressIndicator = NSProgressIndicator(frame: frame)
            progressIndicator.style = .SpinningStyle
            progressIndicator.indeterminate = false
            progressIndicator.minValue = 0
            progressIndicator.maxValue = 100
            progressIndicator.doubleValue = 0
            self.progressIndicator = progressIndicator

            // 当添加进度后,发现状态栏frame大小错误了,没找到解决办法,但是填充一个图片可以解决这个尺寸错误问题
            statusItem.image = NSImage(named: "EmptyIcon")
            statusItem.image?.template = true
            button.addSubview(progressIndicator)
        }
    }

请注意,

- 我们是把一个NSProgressIndicator添加到了NSStatusItem的button视图上,不要添加到view视图上,如果添加到view上,view会挡住状态栏点击事件,这样NSStatusItem会不能响应用户点击了。(当然,如果你app恰好不需要用户点击,可以这样做)

- 你应该留意到了,我在NSStatusItem的image里放了一张透明图片,因为这了是为了解决它frame大小错误的问题

当然,如果你知道如何解决的话,可以告诉我下。哈哈。

时间: 2024-11-02 12:39:56

MacOS的菜单状态栏App添加饼型进度的相关文章

为你的MacOS App添加开机自启动(Swift)

猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/52104828 关于Mac下如何给自己App添加开机自启动功能,你可以了解下Mac Developer Library中的说明. There are two ways to add a login item: using the Service Management framework, and using a

SharePoint 2013:自定义ECB菜单项的添加

本文分别介绍了两种常用的添加ECB菜单项的方式. 声明式创建 这也是微软最佳实践推荐的方式.在VS中创建一个SharePoint空解决方案,并添加一个“空元素”类型的SPI. 在Elements.xml中,定义一个CustomAction,重点关注一下其中高亮部分的属性(本例在文档内容类型的项上添加了一个菜单项,点击导航到一个自定义应用程序页面,并传递项所在的列表的Id作为参数): 添加到Feature,并部署.效果如下: 服务器对象模型创建 这里会用到Feature的事件处理程序.本例同时还演

上传APP添加视频预览--精简点名

上传APP添加视频预览--精简点名 在为精简点名APP制作视频预览时的坑: 1.视频预览不能太长,也不能太短15-30s就好:我录制的是18s 2.视频的帧数不能太大,也就是说你在录制视频的时候,要慢点录制: 3.上传时可能会说文件的无法载入,请再次上传,这个多数是你网络不好造成的,找个网络好的时候,重新上传: 4.视频的尺寸是有限制的,需要不同设备的尺寸:这里有个技巧,想要不同的尺寸,那么使用不同的设备进行录制 5.采用什么样的软件,其实使用QuickTime+iphone就可以搞定,也不需要

MFC中状态栏的添加步骤

首先我们创建一个简单的MFC对话框程序,这个创建过程就省略了.假设我的工程名为:CStatusBar1Dlg 测试环境:vc6.0环境下 下面介绍一下如何在对话框上添加状态栏: 第一步: 在CStatusBar1Dlg.h头文件中添加一个状态栏的变量:CStatusBar   m_wndStatusBar; //状态栏对象 第二步: 在字符串表中添加自己需要在状态栏中显示的ID值,详见截图: 第三步: 在CStatusBar1Dlg.h的class外面定义一个结构体: //添加状态栏变量 sta

ectouch第十一讲 之 ECTouch 菜单里如何添加文章链接

1.首先在 ectouch 后台添加好文章分类和文章内容(具体添加方法很简单,这里就不再赘述),然后在菜单管理里添加导航如下(链接地址的获取方法参考步骤 2):2.文章分类列表 域名/mobile/index.php?m=default&c=article&a=art_list 指定文章分类 域名/mobile/index.php?m=default&c=article&a=art_list&id=1 , id=1 为文章分类  ID 指定某篇文章 域名/mobil

unity 画折线图,饼型图插件

在unity中画折线图,和饼型图等数据分析图是很困难 的一件事,幸好我找到了一个插件很方便的解决了这件事,效果如下图: 折线图,饼型图,等. 运行效果如下: 百度网盘下载地址:链接:https://pan.baidu.com/s/10oLG1Zmffv7ASWG0pvx05w 提取码:lub1 如果链接失效,请留言. 原文地址:https://blog.51cto.com/14058389/2425723

U型进度条

今天同事说要做一个U型进度条的效果. 本打算上网找一个,结果找了一个纯CSS3打造的,不过最坑人的是他把进度条从1到100,挨个设置了CSS属性. 这不得活活累死宝宝~~~~~~~~~~~~~~. 于是我就用Less写了一个简单的,主要是封装了循环,生成了100个属性.封装循环的代码如下 @angle: 3.6deg; .loop(@counter) when (@counter < 100) { .loop((@counter + 1)); // 递归调用自身 [email protected

为APP添加快捷方式

转:http://blog.csdn.net/yangdeli888/article/details/8984018 相信大家在使用很多的应用的时候都碰到过这样的一个情景,那就是当我们第一次点击使用这个应用的时候程序会主动的为我们创建一个桌面上的快捷方式,这样的好处是可以让用户更加方便的进入这个应用,省去找的麻烦.有句话曾经说,谁占据了PC桌面客户端谁就是王者.所以我们在做开发的时候肯定也会有用到这一点,那么今天我就和大家分享实现的这样的一个功能.其实不难,你只需要在你的应用程序启动的第一个Ac

app添加辅助功能时,需要注意的测试点

最近项目里需要在辅助功能添加对应的服务,来支持对应的功能实现: 1.对用户添加app进行信息管理功能中,该app有对应的通知或信息时在app的logo上显示提示标志. 2.用户下载一款app后能够自动安装apk程序. 以上2个需求到需要在设置——辅助功能——服务中添加对应的功能支持,在测试该功能时需要注意以下内容: 1.添加辅助功能受api级别的限制,对功能支持的情况不同,所以有关辅助功能的兼容性测试,需要根据该功能调用的api级别,来选择兼容性手机. 例如功能2中,api只在4.1以上的系统上