如何设置工作流让已读完的iBooks在全设备自动隐藏?
实现iBooks跨设备自动隐藏已读书籍的工作流
这个需求太戳阅读洁癖星人了!我之前也折腾过类似的工作流,结合iBooks原生功能+一点小技巧,完全能实现读完的书在所有设备上“隐身”的效果,下面分两种方案给你拆解:
方案一:手动+原生iCloud同步(适合不想折腾自动化的同学)
这个方法完全依赖iBooks自带功能,简单易上手:
- 第一步:标记书籍为“已读”
不管在Mac、iPhone还是iPad上,找到读完的书:Mac上右键点击书籍,iOS/iPadOS上长按书籍,选择「标记为已读」。这个状态会通过iCloud自动同步到所有绑定同一Apple ID的设备。 - 第二步:开启“隐藏已读书籍”全局设置
- Mac端:打开iBooks,点击顶部菜单栏的「显示」,勾选「隐藏已读项目」,已读书籍会立刻从书架消失。
- iOS/iPadOS端:打开「设置」→「书籍」,找到「隐藏已读书籍」选项并开启。
开启后,所有已标记为已读的书籍会在所有设备的iBooks列表中隐藏,完美实现你要的“精简列表”效果。
- 找回已读书籍的方法
要是哪天想重温,Mac端取消「显示」菜单里的「隐藏已读项目」;iOS/iPadOS端去「设置」→「书籍」关闭对应开关,或者直接在iBooks里搜索书名,就能快速找到。
方案二:自动化工作流(适合彻底解放双手的同学)
如果不想每次手动标记已读,可以做个自动化脚本,自动识别读完的书(阅读进度100%)并标记,配合隐藏设置实现自动“隐身”:
- Mac端用Automator实现定时自动标记
- 打开Automator,新建一个「定时工作流」(比如设置每天凌晨1点自动运行)。
- 添加「获取iBooks书籍」动作,设置筛选条件为「阅读进度等于100%」。
- 添加「运行AppleScript」动作,输入以下脚本:
保存后,这个工作流会每天自动把阅读进度拉满的书标记为已读,结合之前开启的隐藏设置,这些书就会自动在所有设备上消失。on run {input, parameters} tell application "Books" repeat with aBook in input set read status of aBook to true end repeat end tell return input end run - iOS/iPadOS端用快捷指令配合
打开「快捷指令」App,新建一个快捷指令:- 添加「获取书籍」动作,筛选条件设为「阅读进度100%」。
- 添加「标记书籍为已读」动作。
- 设置快捷指令为自动运行(比如选择「当打开书籍App时」触发,或者每天定时运行)。
这样iOS端也能自动同步已读状态,实现跨设备隐藏。
关键注意事项
- 确保所有设备都开启了iCloud书籍同步:Mac端去「系统设置」→「Apple ID」→「iCloud」勾选「书籍」;iOS/iPadOS端去「设置」→「[你的名字]」→「iCloud」勾选「书籍」,这是跨设备同步的前提。
- PDF文件的阅读进度检测可能不如ePub精准,建议PDF读完后手动标记已读,避免自动化漏判。
- 隐藏≠删除:已隐藏的书籍只是不在列表显示,并没有被移除。如果想彻底删除,标记已读后右键/长按选择「删除」,但这个操作会同步到所有设备,需谨慎。
内容的提问来源于stack exchange,提问作者Dhiraj Gupta
相关产品推荐
相关产品推荐

