修复 OpenFL 的 TextField 不显示输入法候选词列表的问题

在前文《试用跨平台 GUI 框架 HaxeUI》中提到了 OpenFLTextField 在启用输入法时无法显示候选词列表的问题。经过一番摸索,发现了问题出在了 SDL 库的身上。

OpenFL 的底层基于 Lime ,而 Lime 的桌面后端又是基于 SDL 。OpenFL 默认使用的 SDL 代码位于 openfl/libsdl 。问题定位于源文件 SDL_windowskeyboard.c 中的 IME_init() 函数中,只要将第 373 行的代码注释掉,就可以正常显示输入法候选词列表了:

……

试用跨平台 GUI 框架 HaxeUI

HaxeUI 是一款跨平台 GUI 框架,支持网页、桌面和移动端。 框架前端使用 Hexo 语言开发。框架后端使用图形引擎或者原生跨平台 GUI 框架,比如 OpenFL, NME, Kha,PixiJS, wxWidgets, Winforms 等。最终生成 C++ 代码编译成本地可执行文件或者 HTML 代码。在各种后端中,除了 wxWidgets 和 Winforms 使用原生组件外,其他都是使用图形引擎绘制或者生成 HTML 代码。

img

Haxe 也是一个比较有意思的语言。它本身不能进行本地编译,而是转译成其他语言,比如 Lua, PHP, Java, Python, C++, C# 等,也可以编译成 Neko 或 HashLink 虚拟机的字节码(详见 Haxe Compiler Targets)。Haxe 语言诞生于 2005 年,算是历史久远了,然而其社区却一直不温不火,网上也很难找到中文资料。 Haxelib 上的开发者提交的三方库数量和 Python 的 PyPi 相比,只能说是聊胜于无。

……

在 WSL 中运行 Lazarus IDE

Free Pascal 支持交叉编译,理论上是可以在 Windows 平台上编译 Linux 可执行文件的,但是官方没有提供相关文档,且不建议这么做。除了使用虚拟机外,在 Windows 平台上还可以使用 WSL 来交叉编译 Lazarus 项目。

……

Fournoas 说:

爱国主义的精髓是“爱”,而某“爱国主义”的精髓却是“恨”。它们恨美国、恨日本、恨“八国联军”(俄罗斯除外),唯独爱的只是那个迫害人民的东西。

Fournoas 说:

欢庆齐奥塞斯库在厕所门口被打靶 34 周年

判断用户是否删除过浏览器历史记录

本文仅适用于 Google Chrome, Microsoft Edge 等使用 Chromium 内核的浏览器。此内核的浏览器会将浏览器的访问历史记录储存在一个 SQLite 数据库文件中,可以用任何支持 SQLite 数据库 GUI 工具打开。常用的免费 SQLite 数据库 GUI 工具有:

在不同的操作系统下, Google Chrome 的历史记录数据库文件默认保存路径如下:

  • Windows: %LOCALAPPDATA%\Google\Chrome\User Data\Default\History
  • Linux: ~/.config/google-chrome/Default/History
  • macOS: /Users/<username>/Library/Application Support/Google/Chrome/Default/History

在 Windows 下, Microsoft Edge 的历史记录数据库文件保存路径为:

……

Fournoas 说:

很多人在表达时喜欢使用类比,这是因为它们缺乏具体分析事务的能力,只能用类比的方式来简化这一过程(当然,也有对受众认知水平的考量)。事实上,大多数类比用例都属于“类比失当”,是一种“抖机灵”。

Fournoas 说:

此题无解。因为无法确定司机是不是在开倒车。

Fournoas 说《总有一天等到你》:

下面,为大家献上一曲张学友的歌,总有一天等到你

Fournoas 评论《为什么说崇祯帝缺乏帝王教育,什么可以称为帝王教育?》:

没想到崇祯的文化程度这么低