把 MacBook 触控板变成电子秤:TrackWeight 完全指南
——写给想用电脑称东西的你
前言:为什么有人会想用电脑称重?
当你第一次看到「MacBook 触控板可以当电子秤」这个说法,可能会觉得像魔术。但读完这篇文章,你会知道它背后的物理原理、限制、安装步骤以及使用时的注意事项。整篇内容基于开源项目 TrackWeight 的公开文档,不添加任何外部信息,只把它翻译成更贴近日常对话的表达,让任何专科及以上学历的读者都能看懂、会用、知道边界在哪里。
1. TrackWeight 是什么?
一句话总结:
TrackWeight 是一款 macOS 应用,把支持 Force Touch 的 MacBook 触控板变成一台能显示克数的电子秤。
它用到了苹果在 2015 年以后 MacBook 上加入的「Force Touch 压力传感器」。这些传感器原本用来识别轻按、重按,但开发者发现,它们的原始数据正好以克为单位输出,于是实现了「称重」功能。
2. 工作原理:为什么触控板能「感受」重量?
2.1 必须满足的两个条件
条件 | 解释 |
---|---|
电容接触 | 触控板只有在检测到手指或导电物体时,才会生成压力事件。 |
压力传感器 | 手指接触后,Force Touch 传感器把压力转成数字信号,单位恰好是克。 |
2.2 数据流程图
graph TD
A[物体放在触控板] --> B[手指保持接触]
B --> C[Force Touch 传感器]
C --> D[Open Multi-Touch Support 库]
D --> E[TrackWeight 应用]
E --> F[屏幕显示重量]
3. 校准:从「原始数据」到「可信克数」
开发者用了一个非常朴素的办法验证准确性:
-
把 MacBook 直接压在传统电子秤上。 -
用同一组已知砝码(50 g、100 g、200 g……)。 -
同时记录触控板读数和电子秤读数。 -
发现两者线性度很好,直接以克为单位即可,无需复杂换算。
换句话说,你看到的数字就是克,不需要额外乘系数。
4. 安装步骤:一步步跟着做
4.1 硬件与系统要求
项目 | 最低要求 |
---|---|
操作系统 | macOS 13.0 及以上 |
机型 | 2015 及更新款 MacBook Pro,或 2016 及更新款 MacBook |
触控板 | 必须支持 Force Touch(可在「系统设置 ▸ 触控板」中确认) |
4.2 软件准备
-
Xcode 16.0 或更高版本 -
Swift 6.0 或更高版本 -
Git(用于克隆仓库)
4.3 安装流程
-
打开终端,克隆仓库 git clone https://github.com/krishrshah/TrackWeight.git cd TrackWeight
-
双击 TrackWeight.xcodeproj
,Xcode 自动打开项目。 -
在 Xcode 左侧选中项目 ▸ 「Signing & Capabilities」标签 ▸ 关闭 App Sandbox。 必须关闭 Sandbox,否则应用无法读取低阶触控板事件。
-
选择菜单 Product ▸ Run
,或直接按⌘R
,应用会编译并自动启动。 -
第一次运行时,系统会提示「允许访问输入监控」,进入「系统设置 ▸ 隐私与安全性 ▸ 输入监控」勾选 TrackWeight
。
5. 使用方法:三步称重
步骤 | 动作 | 注意点 |
---|---|---|
1 | 打开 TrackWeight 应用 | 主界面会出现实时读数窗口 |
2 | 把手指轻轻放在触控板 | 保持接触,但别用力压 |
3 | 在手指不动的前提下,把待称物体放到手指旁边 | 物体必须接触触控板,但不能压住手指 |
小技巧:物体若太小,可先用一张折纸当托盘,再把物体放纸上。
6. 限制与易错点
6.1 不能绕开的物理限制
-
手指必须一直接触:没有手指,触控板不会生成压力数据。 -
金属物体可能误触:钥匙、硬币会被系统当成「手指」,导致读数异常。解决:垫一层纸或布。 -
最大量程:官方未给出上限,经验表明 300 g 以内误差较小,超过后线性度下降。
6.2 常见故障排查
现象 | 可能原因 | 解决方案 |
---|---|---|
读数始终为 0 | 没有检测到手指 | 确认手指完全接触触控板 |
数值乱跳 | 手指用力不稳或金属干扰 | 放松手指、垫绝缘层 |
应用无法启动 | App Sandbox 未关闭 | 回到 Xcode ▸ 关闭 Sandbox 重新编译 |
7. 技术内幕:它到底调用了哪些接口?
TrackWeight 用到了 Open Multi-Touch Support 库(作者 Takuto Nakamura),该库提供:
-
全局触控事件钩子 -
每条触控的坐标、压力、角度、密度 -
线程安全的异步流 -
Swift 的 async/await
支持
应用层用 SwiftUI + Combine 做界面和实时数据绑定。整个项目 MIT 许可证,可放心阅读源码。
8. FAQ:你可能想问的 10 个问题
问题 | 回答 |
---|---|
真的可以精确到小数点后几位吗? | 官方数据以克为单位,实际显示整数克,误差 ±2 g 左右。 |
能称液体吗? | 可以,把液体装在小容器里,再按步骤操作即可。 |
会不会把触控板压坏? | Force Touch 设计承压远高于日常称重,无需担心。 |
Windows 能用吗? | 不能,依赖 macOS 私有框架。 |
能否在 M1/M2/M3 芯片上运行? | 可以,只要系统版本满足 macOS 13+。 |
为什么一定要关闭 App Sandbox? | Sandbox 限制应用访问硬件事件,必须关闭才能读取触控板数据。 |
可以称活体昆虫吗? | 理论上可行,但昆虫爬动会导致读数波动。 |
会不会泄露隐私? | 应用只读取压力值,不上传任何数据,可离线使用。 |
如何卸载? | 删除 /Applications/TrackWeight.app ,并在「输入监控」列表里取消勾选即可。 |
未来会支持 iPhone 吗? | 项目仅针对 macOS,暂无 iOS 计划。 |
9. 使用场景灵感清单
场景 | 说明 |
---|---|
烘焙随手称香料 | 1 g、2 g 的酵母、盐,随手就能称,不用搬大秤。 |
邮包验重 | 寄小包裹前,快速确认是否超过首重。 |
实验室小样 | 称量滤纸、小试剂瓶,减少走动。 |
旅行前称重 | 把行李里的电子小物件拿出来单独称。 |
10. 安全与免责声明
-
非商业用途:项目定位为实验与教育,不建议用于贸易结算或医疗。 -
误差提醒:重要场景请用校准过的专业电子秤复测。 -
硬件风险:请勿放置超过 500 g 的重物,以免超出触控板设计载荷。
11. 结语:把好奇心变成动手实践
TrackWeight 把原本隐藏在驱动层的传感器数据「翻译」成普通人可读的重量,让「称重」这一日常动作多了一种新奇但可靠的解决方案。只要遵循步骤、理解限制,你的 MacBook 就能在关键时刻充当一把应急电子秤。
祝你称重愉快!