SwiftUI 教程

SwiftUI - 主页 SwiftUI - 概览 SwiftUI 与 UIkit

SwiftUI 环境

SwiftUI - 环境设置 SwiftUI - 基本组件 SwiftUI - 构建第一个应用程序

SwiftUI 视图

SwiftUI - 视图 SwiftUI - 自定义文本视图 SwiftUI - 自定义图像视图 SwiftUI - 堆栈

SwiftUI 绘制形状

SwiftUI - 形状 SwiftUI - 绘制线条 SwiftUI - 绘制矩形 SwiftUI - 绘制圆角矩形 SwiftUI - 绘制三角形 SwiftUI - 绘制圆形 SwiftUI - 绘制星形 SwiftUI - 绘制多边形 SwiftUI - 绘制饼图 SwiftUI - 使用内置形状

SwiftUI - 文本

SwiftUI - 文本视图 SwiftUI - 文本输入和输出

SwiftUI - 颜色

SwiftUI - 颜色 SwiftUI - 颜色选择器 SwiftUI - 渐变 SwiftUI - 调整颜色

SwiftUI - 效果

SwiftUI - 效果 SwiftUI - 混合效果 SwiftUI - BLur 效果 SwiftUI - 阴影效果 SwiftUI - 悬停效果

SwiftUI - 动画

SwiftUI - 动画 SwiftUI - 创建动画 SwiftUI - 创建显式动画 SwiftUI - 多个动画 SwiftUI - 过渡 SwiftUI - 不对称过渡 SwiftUI - 自定义过渡

SwiftUI - 图像

SwiftUI - 图像 SwiftUI - 图像作为背景 SwiftUI - 旋转图像 SwiftUI - 媒体

SwiftUI - 视图布局

SwiftUI - 视图布局 SwiftUI - 视图大小 SwiftUI - 视图间距 SwiftUI - 视图填充

SwiftUI - UI 控件

SwiftUI - UI 控件 SwiftUI - 按钮 SwiftUI - 复选框 SwiftUI - 菜单栏 SwiftUI - 工具栏 SwiftUI - 搜索栏 SwiftUI - 文本字段 SwiftUI - 滑块 SwiftUI - 切换 SwiftUI - 选择器 SwiftUI - 菜单

SwiftUI - 列表 &表格

SwiftUI - 列表 SwiftUI - 静态列表 SwiftUI - 动态列表 SwiftUI - 自定义列表 SwiftUI - 表格

SwiftUI - 表单

SwiftUI - 表单 SwiftUI - 在部分中拆分表单

SwiftUI - 事件处理

SwiftUI - 事件处理 SwiftUI - 手势 SwiftUI - 剪贴板 SwiftUI - 拖放 SwiftUI - 焦点 SwiftUI - 警报

SwiftUI - 杂项

SwiftUI - 容器 SwiftUI - 导航 SwiftUI - 通知 SwiftUI - 跨平台 UI SwiftUI - 数据 SwiftUI - 可访问性

SwiftUI - 框架集成

SwiftUI - 框架集成 SwiftUI - 与 UIKit 交互 SwiftUI - 创建 macOS 应用

SwiftUI 有用资源

SwiftUI - 有用资源 SwiftUI - 讨论


SwiftUI - 菜单栏

菜单栏是出现在应用程序窗口顶部的 UI 元素,或者可以以列表格式显示各种选项或命令。每个菜单栏都有自己的菜单,其中包含各种操作、任务或按钮。

例如,菜单包括文件、编辑、查找、查看等。SwiftUI 不提供任何预定义的修饰符或方法来创建菜单栏。此外,菜单栏仅受 macOS 13+ 支持,除 macOS 外,没有其他 Apple 平台(如 iOS、iPad、watchOS 等)支持菜单栏。

在 SwiftUI 中创建菜单栏

在 SwiftUI 中,我们可以借助 MenuBarExtra() 方法创建菜单栏。此方法使用用作标签的键创建一个菜单栏附加项。它定义了应用程序的主要场景。我们还可以在菜单栏中添加图片和系统图片。menubarExtra 的输出将显示在实际的 macOS 中,而不是模拟器中。

语法

以下是语法 −

MenuBar(_titleKey: String,
content: ()->Content)

参数

此视图使用以下参数 −

  • titleKey:表示项目的用途。

  • content:在屏幕上显示元素的视图。

示例

以下 SwiftUI 程序创建菜单栏。

import SwiftUI
@main
struct MyApp: App {
   var body: some Scene {      
      WindowGroup {
         ContentView()
      }      
      // Menu Bar Item
      MenuBarExtra("MyData", systemImage: "star.fill") {
         Button("Open") {
            print("Open Window clicked")
         }
         Button("File") {
            print("Settings clicked")
         }
         Button("Project") {
            print("Settings clicked")
         }
         Button("Settings") {
            print("Settings clicked")
         }
         Divider()
         Button("Quit") {
            NSApplication.shared.terminate(nil)
         }
      }
   }
}    

输出

MenuBar

在 SwiftUI 中设置 menuBarExtra 的样式

在 SwiftUI 中,我们可以借助 menuBarExtraStyle() 修饰符来设置 menuBarExtra 的样式。此修饰符提供各种样式来设置由指定场景创建的菜单栏的样式。默认情况下,它是在 .automatic 中设置样式,但我们可以在 .menu 和 .window 中设置菜单样式。

语法

以下是语法 −

func menuBarExtraStyle(_ style: S) -> some Scene

示例

以下 SwiftUI 程序用于设置菜单栏样式。

import SwiftUI
@main
struct MyApp: App {
   var body: some Scene {      
      WindowGroup {
         ContentView()
      }      
      // 菜单栏项目
      MenuBarExtra("MyData", systemImage: "star.fill") {
         Button("Open") {
            print("Open Window clicked")
         }
         Button("File") {
            print("Settings clicked")
         }
         Button("Project") {
            print("Settings clicked")
         }
         Button("Settings") {
            print("Settings clicked")
         }
         Divider()
         Button("Quit") {
            NSApplication.shared.terminate(nil)
         }
      }.menuBarExtraStyle(.automatic)
   }
}

输出

MenuBar