You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在macOS SwiftUI应用中通过代码实现显示所有标签页功能

编程触发「显示所有标签页」操作的实现方案

以下分不同开发场景给出可直接使用的实现方式:

AppKit(macOS 原生应用)

如果你的应用使用了系统原生的NSWindow标签组能力,直接调用系统提供的公开API即可触发对应效果:

  • Swift 示例代码:
// 传入你当前的窗口实例即可
currentWindow.toggleTabOverview(nil)
  • Objective-C 示例代码:
[currentWindow toggleTabOverview:nil];

调用后会直接弹出和系统标签栏点击「显示所有标签页」完全一致的概览界面,不需要额外自定义视图。

UIKit(iOS/iPadOS 应用)

仅iOS 15+、iPadOS 15+ 系统提供了原生触发能力,适配多标签场景的实现代码如下:

if let rootTabVC = view.window?.rootViewController as? UITabBarController {
    rootTabVC.presentTabOverview(animated: true)
}

低于上述系统版本的场景没有原生API可用,需要自己实现标签缩略图概览的自定义弹窗。

SwiftUI 跨平台应用

适配 macOS 13+、iOS 16+ 及以上版本的实现代码如下:

struct MainView: View {
    // 引入系统提供的标签概览打开方法
    @Environment(\.openTabOverview) private var openTabOverview
    
    var body: some View {
        Button("显示所有标签页") {
            openTabOverview()
        }
    }
}

低版本系统兼容可以通过桥接对应平台的原生API实现。

注意:所有原生API仅在你的应用已经启用系统原生标签页能力时生效,如果是自定义实现的标签页逻辑,需要同步自己写对应的概览展示交互。

实现效果参考:
显示所有标签页效果示例

内容的提问来源于stack exchange,提问作者WU_C

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 07:51:02