Xcode 菜单过滤是 AppKit 内置功能,一条 defaults 命令即可给任意 App 开启

zats · x · 2026-10-18

开发者 zats 本想自己重写 Xcode 那种「输入即过滤」的菜单,结果发现该功能早已内置于 AppKit(macOS 27+ 提供)。任何 NSMenu 都能启用:最简单的方式是执行 defaults write <app-bundle-id> NSMenuUseFilteringByDefault -bool YES,对菜单项 6 个以上的 App 无需写代码即可生效;也可以用私有 API(检查 setTypingBehavior: 选择器后设置 typingBehavior,2 为过滤、3 为选中)并通过监听 NSMenu.didBeginTrackingNotification 给全 App 包括 SwiftUI 的所有菜单递归开启。作者提醒:过滤在一级菜单项上效果最好,子菜单可能不理想。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →