从 cns11643 中文标准全字库生成仓颉和速成官方码表

一直以来,我对仓颉速成这对难兄难弟是很有意见的……网上流传的码表版本繁多,但名字都叫“仓颉”,和五笔对比起来,好歹五笔还分个 86 和 98,再新一点还有 新世纪 等等,但仓颉没有,不论什么版本的仓颉,都叫“仓颉”。

这就很尴尬,每个人用的仓颉码表都不一样,但不一样在哪里,他自己也不知道。

总[……]

点击跳转以继续阅读

落格输入法是如何处理按键消息的

要做一款移动设备上的软键盘,那么怎么处理用户的点击位置,就是你遇到的第一个难题,在这个问题上,我也走了很长的路。

我把落格输入法开发以来的触控逻辑大致分类为三个阶段,现在分别来讲讲设计思路,希望能够对你有所帮助。

第一代触控引擎

显然,对于一个初学者来说,没什么比系统控件更好用的了,功能全[……]

点击跳转以继续阅读

让 iOS macOS 中文字体实现视觉垂直居中

在开发落格输入法 macOS 的时候,我遇到了一个比较奇葩的问题,这个问题一直困扰我到现在——当有些地方需要垂直居中显示一排文字的时候,如何让这些字真正的“居中”?

 

乍看之下这似乎没什么道理,垂直居中嘛……等等,macOS 上的 [crayon-5d5904fcec8739[……]

点击跳转以继续阅读

Swift 里的数组去重方案

在使用 Swift 进行开发落格输入法时,我遇到了一个很有意思的问题——去重

众所周知,输入法的候选在计算出来后总会有可能是重复的选项(比如码表和词库中都有某个词,也许他们编码不同,但字是一样的之类),这时候就需要去重,但又要保持候选的先后顺序不变。

别人的解决方案

如果你去网上找,那么[……]

点击跳转以继续阅读

落格输入法 macOS 2 是如何为 VoiceOver 进行优化的

在两年前,我曾写过一篇名为《ios 为视障用户支持 VoiceOver》的文章,里边主要介绍了 iOS 端该如何为 VoiceOver 进行必要的支持,后来我又开发了 macOS 端的落格输入法,但很遗憾由于 macOS 自身系统 bug,第三方输入法根本无法获得 VoiceOver 焦点(主要是[……]

点击跳转以继续阅读

swift4 urlSession get和post网络请求

废话不多说,直接上代码。

GET:

POST:

 [……]

点击跳转以继续阅读

Swift 中如何使用字典类型作为范型约束

今天学员群里有人提了这么一个问题,为什么把特性的字典类型作为范型类型约束的时候,就必然报错?

显然,说的很明确了,“你不能从一个非协议、非类的类型继承”。显然,字典是个范型结构体……

那么解决思路也很明确了,创建一个[……]

点击跳转以继续阅读

NSTextField 文本模糊的解决办法 canDrawSubviewsIntoLayer

在开发落格输入法 macOS 的过程当中,我一直被一个奇怪的问题所困扰——文本模糊。

次像素

无论我怎样调试,落格输入法的候选文字都无法达到原生文字的那样清晰和锐利。在请教了大神之后,得到的活久见经验是——上游次像素渲染 bug。

在很多平台都有类似问题,macOS[……]

点击跳转以继续阅读