GhostSKB

一个前前后后花了大概三天的时间写完的小工具,用于Mac下根据App切换当前输入法

/assets/ghostskb-screenshot-1.png

/assets/ghostskb-screenshot-2.png

Project

Source : GhostSKB

Install From App Store: GhostSKB

缘起于懒惰

我是一个比较懒的人,如果有什么事情能更高效的去做,我肯定会努力用高效的方法行成习惯去做。

我的工作环境大多在Mac下,日常工作中,少不了中英文输入法的切换,比如在终端下一般需要英文,在聊天工具(比如QQ,微信)中一般需要中文,但是工作节奏快,哪有可能去记当前输入法的状态是英文还是汉语拼音更或者是五笔。

如果能有一个工具,监听当前我切换到了什么程序下,然后自动的切换到当前的应用程序较常用(或者是设置好的)输入法,岂不是美哉...

于是就有了这个小工具

开发

想要,就得动手

我对Mac App开发其实一点也不熟悉,但是我熟悉的是Objective-C 和iOS开发,两者是有很多相通的地方的。于是我就边写遍读文档,一路这么写了下来。发现写一个Mac App也不是那么难。

16年4月初提交的第一个commit 中间就没时间了,后来有一天心血来潮,写到凌晨两点半一切搞定,这就是专注的力量吧

发布

本来想一直放在github上免费下载,结果有朋友说在github上下载的用不了,提示放到废纸篓,应该是软件未经过正式签名造成的问题。

于是,申请证书、打包、发布到AppStore 等待审核。还算顺利,不到三天的时间就审核通过了。定价6元人民币,权当是给自己的辛苦费吧,也算是我独立操作一个应用,从开发到发布的整个流程的一个尝试的奖励。

关于Icon

icon是我从icon8里搜的,下不到比较大的尺寸的原图,我就饶了一个弯,分析了一下icon8提供的源码,然后把对应图片的svg数据下载下来保存成文件,然后将svg在线转换成了我想要的任何尺寸的png图片。然后用我那简陋的ps技巧,p了一张小的键盘上去,这样就产生了icon

关于国际化

本来打算只在中国能下载,只支持中文。后来有香港和美国的人给我发了封邮件,我发现,这个小东西在那里也有人需要,于是就把国际化做了稍微的支持,支持中文和英文,根据Mac的语言环境,自动切换到对应的语言。

版本

  1. 1.0 2016.7.15 第一版
  2. 1.1 2016.7.17 增加设置界面,fix bug
  3. 1.1.1 2016.7.21 增加国际化支持

遇到的问题

Mac下的TableView比iOS下的复杂的多的多,我想我最初接触iOS的UITableView 就是Mac的NSTableView简化来的吧,而且目前开发的话,官方推荐实现基于View的TableView(View-Based TableView) 而不是基于Cell的. 这两者的写法有很大的不同

自定义NSTableCellView 费了很大劲儿,原因是从xib中直接关联一个IBOutlet组件到对应的Custom Class 中去。后来通过:

  1. 在CustomCellClass.h 中写上对应的IBOutlet property
  2. 然后打开xib文件,在右侧选择连接IBoutlet 那一选项卡,然后将定义好的IBOutlet property 连接到xib对应的cell中的subview中上。

不知道为何会这样,至今很迷惑,不知道是不是xcode的bug,或者是我使用有问题。不过还好最终解决了这个问题