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

在两年前,我曾写过一篇名为《ios 为视障用户支持 VoiceOver》的文章,里边主要介绍了 iOS 端该如何为 VoiceOver 进行必要的支持,后来我又开发了 macOS 端的落格输入法,但很遗憾由于 macOS 自身系统 bug,第三方输入法根本无法获得 VoiceOver 焦点(主要是 10.13 及以下版本),所以我也就没有过多关注——甚至直到这款输入法整个生命周期结束也没能实现 V[……]

点击跳转以继续阅读

sed: 1: “…”: invalid command code

Linux 的朋友可能会对这个命令比较熟悉,它可以在脚本里快速和批量地对文本文档进行操作,比如改动某一行或者替换具体内容……

macOS 自然也是有这个命令的,但有一点不太一样,如果你执行  sed -i ,那么多半你会得到一个奇怪的报错 sed: 1: “…”: invalid command code 。

 [……]

点击跳转以继续阅读

DoT DoH 除了 DNSCrypt,你还可以了解一下更好的 DNS 加密方案

2018年11月02日 更新,切换到 DoT 一天后,所有 stubby 内置服务器运行异常缓慢,直到日常使用都难……只好放弃。

2018年11月01日 更新,使用了 5 天 DoH 后,由于目前提供此服务的服务器只有 1.1.1.1,这个地址在我这里被运营商屏蔽了。

 

 

三年前[……]

点击跳转以继续阅读

swift4 urlSession get和post网络请求

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

GET:

POST:

 [……]

点击跳转以继续阅读

小火箭 Shadowrocket 的四个高级配置

使用小火箭很久了,很多朋友都说,小火箭 Shadowrocket 不稳定,老自己掉后台,这次我就来说说我是怎么使用它的。

以前 iOS 不支持这类 VPN 应用,每次在 iOS 上翻墙,都是一件让人煞费苦心的事情。后来 Surge 出现了……我第一时间就买了,当然,再后来中区下架 Surge,我也彻底换了美区的 Apple ID,就没有再买另外一份 Surge,转而买了相对便宜的 Shado[……]

点击跳转以继续阅读

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

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

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

那么解决思路也很明确了,创建一个类来装饰个字典或许是个不错的选择但太麻烦,那么就从协议上下手。

有条件的协议遵循

我们可以给字典[……]

点击跳转以继续阅读

NSTextField 文本模糊的解决办法 canDrawSubviewsIntoLayer

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

次像素

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

在很多平台都有类似问题,macOS 底层渲染也有这样的错误,一旦你的布局出现了小数点或者不是整数,就会导致文本渲染模糊。

那[……]

点击跳转以继续阅读

到底“双拼”是个啥?

本文首发于数码荔枝,原名 《到底「双拼」是个啥?听双拼输入法开发者给你说》

就在上个周末,我向一个新朋友推荐双拼输入法,他是那种对这方面从来没有关心过的人——就连“全拼”这个概念,也是在我向他介绍了双拼之后才知道的——“原来我一直以来用的叫做全拼(拼音)输入法”。

正是这件事情,促使我动手撰写这篇文章。作为一款双拼输入法的开发者,说实在的,当时我也很“捉鸡”,我们常说双拼效率高、双[……]

点击跳转以继续阅读