WWDC 26:用 SwiftUI 打造 Mac 原生应用——半年后的进展更新
来源:pfandrade.me — 2026-06-23
📋 概述
作者半年前发表了《用 SwiftUI 打造 Mac 原生应用》一文,意外获得大量关注——被 Mastodon 多次转发、入选 iOS Dev Weekly、成为 Swift Blog Carnival 五月主题,甚至被 John Gruber 在 Daring Fireball 上引用。这种关注度引来了 Apple 工程师主动联系,双方邮件交流后作者提交了多个 Radar。WWDC 26 结束后,作者回来汇报进展:.backgroundProminence 原生支持选中状态高亮,.onDragSessionUpdated 解决了拖拽会话可见性问题,.onMoveCommand 在 iOS/iPadOS 上仍然缺失令人遗憾,工具栏和右键菜单等问题也提交了反馈。这是一篇务实的跨平台框架现状报告。
🔑 核心要点
- .backgroundProminence 环境值已内置选中状态高亮,用
List/Table 时自动生效,可替代作者之前自创的 .isEmphasized
- 全新 .onDragSessionUpdated API(macOS 26+)首次让 SwiftUI 拖拽获得从会话开始到结束的完整可见性,补齐了 AppKit 早已具备的能力
- .reorderable 修饰符加入 OS 27 版本,简单拖拽排序需求从此无需自己实现
- .onMoveCommand 仍不支持 iOS/iPadOS,但 tvOS 却有——作者认为这是 API 可用性缺口,削弱了跨平台 UI 框架的承诺,已提交 FB23095985
- 提交的 Radar 还包括:右键菜单状态感知(FB23097100)、Toolbar API 易用性改进(FB23102836)、List 自定义行能力增强(FB23095823)
- WWDC 26 新增 .visibilityPriority 帮助管理工具栏溢出优先级,但并未解决作者提出的核心痛点
💡 金句
平台间的小差异单独看微不足道,但当你试图共享真正的 UI 代码时,它们会迅速堆积成山——这正是跨平台 UI 框架承诺被打折扣的地方。
← 返回 Lobsters 首页