分类
Swift 落格输入法

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

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

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

第一代触控引擎

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

点击跳转以继续阅读

分类
分享交流

df-dferh-01 中国区 Android 安装 Google Play Store 后报错 的 解决办法

在使用 Android 设备时,如果你购买的是一台中国区单独发行的定制版本 Android 设备,那么很有可能你的设备中并不内置谷歌套件,比如 Play Store。

这时候我们就需要自己安装它,安装的办法有很多,这里不再赘述。总之,一但你安装好,就会发现,即使开了代理,Play Store[……]

点击跳转以继续阅读

分类
Linux 网络

Ubuntu 超快部署 wireguard 服务端

新出的 Wireguard 很多人都想尝试,这里 VPN 到底适不适合用来翻墙我们先不讨论,先来看看怎么快速在 vps 上起一个 wireguard 服务。很多人听说这个服务配置起来特别复杂,所以望而却步,实际上很简单。

环境

这里我用最新的 ubuntu 18.04.2 来配置,首先你得有一个[……]

点击跳转以继续阅读

分类
Swift

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

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

 

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

点击跳转以继续阅读

分类
分享交流 网络

iOS 独立开发:管理你的兑换码

作为 iOS 开发者的你,肯定是知道 Promo codes 这个东西的,也就是我们常说的兑换码。(当然,作为 iOS 用户兴许你也对此不陌生)

这次,我们就来看看,这个看似无穷无尽的兑换码,到底有哪些限制。

有效期

苹果后台生成的兑换码有效期一直是一个谜,虽然官方的说法的 4 周,也就是[……]

点击跳转以继续阅读

分类
Swift

Swift 里的数组去重方案

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

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

别人的解决方案

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

点击跳转以继续阅读

分类
新闻快报

办公软件好,人人少不了。Office 365,走你!

办公软件这东西,文字处理、表格编辑、还有著名的“ppt”幻灯片,毕业后我几乎就没再碰过微软系了,偶尔需要文字编辑用的也是苹果的 iWork 系列(当然写论文什么的就别想了),总之,这次我要软一次,推一下 Office 365.

其实就是微软的办公套件,各位可能还在用盗版——这次是绝佳的机会把它[……]

点击跳转以继续阅读

分类
Mac OS Swift

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

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

点击跳转以继续阅读

分类
Mac OS

sed: 1: “…”: invalid command code

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

macOS 自然也是有这个命令的,但有一点不太一样,如果你执行  sed -i ,那么多半你会得到一个奇怪的报[……]

点击跳转以继续阅读