由一个像素引发的”血案”
2014/08/25
抢沙发
由于项目中经常需要程序绘制各种奇形怪状的自定义控件,所以NSBezierPath是一个非常不错的选择,偶然的机会发现当设置NSBezierPath的lineWidth为1.0时,绘制出来的效果很不理想,如下图所示: 这当然不是我所想要的效...
开发示例
MAC系统状态栏通过插件添加图标MenuExtra Plugin
2014/06/18
5条评论
在开发MAC软件时,为是让用户更方便的使用功能并且不占用过多桌面空间,我们一般都会选择在状态栏添加图标,就如Windows上的任务栏一样.我们通常使用如下的方式的生成状态栏图标: [NSStatusBar systemStatusBar] s...
程序源码
,,,
解决MacBookPro在EFI模式下使用Windows8.1声卡驱动问题
2014/05/05
7条评论
最近因为要使用Windows系统,所以索性就在我的MacBookPro上安装了Windows8.1,因为Windows8.1可以支持EFI模式安装,所以各个过程非常方便,但安装之后唯独声卡驱动不了,安装最新BootCamp的驱动也不管用,最后终...
业界杂谈
,
对替身(Alias)文件的操作
2014/04/04
抢沙发
对于替身文件的操作,以前我们可以直接使用CarbonCore/Aliases.h这个头里面的方法,比如FSIsAliasFile,FSResolveAlias,FSNewAliasFromPath等方法来判定是否是替身文件,找到替身的原文件和创建替身,但这些方法在10.8...
开发示例
,
线程安全的可变容器类
2014/03/07
4条评论
稍稍有点儿Objective-C编程经验的人都明白NSMutableArray和NSMutableDictionary此类可变的容器都是线程不安全的。但即便大家都知晓这个准则,但在使用多线程编程时,我们仍然会通过可变容器来达到线程间的数据共...
开发示例
通过ServiceManagement注册LaunchdDaemon
2014/02/16
6条评论
在OSX开发与系统密切相关的软件,经常会使用到高权限的操作,让整个程序都以高权限执行显然是不合适的,通过将高权限的任务封装到独立的子程序,按需要进行调用是比较合理的做法。而常见的做法是通过注册LaunchdD...
开发示例
,
迟来的2013年终总结
2014/01/26
10条评论
2013年眼看都过去好多天了,看着大家都在写年终总结了,但因为最近工作实在太忙,加上家里有个熊孩子,所以一直抽不开身来总结我的2013。 2013是一个成长年,更是忙碌的一年,不仅对我而言是这样,对我整个家庭来...
默认分组
JavaScript与Objective-C之间的通信
2013/12/15
6条评论
之前自己闲着无聊写过几个套用网页的“皮包软件”,其实像这样的“皮包软件”也可以做得很高端大气的,通过WebKit实现的OC-JS Bridge,可以非常方便的实现在JS中调用OC的方法/在OC中调用JS的方法。如此一来,便可以通...
开发示例
,,,
修改其它程序的defaults文件
2013/12/09
3条评论
在iOS和Mac开发的程序中,我们常用NSUserDefaults来保存一些配置信息,我们都知道这是一种基于Plist文件的存储,并且最终保存的信息存放在/Library/Preferences/或~/Library/Preferences/目录之下,以BundleID命...
开发示例
,,
快速计算目录的size
2013/12/02
3条评论
关于目录的size计算,我尝试过很多种方式去实现过,虽然都已经应用在正式的项目之中,但我一直对其性能不满意。最常见的就是通过递归方式去逐层计算,但通过测试发现在计算层数多、数量大的目录时,递归的方式会...
开发示例