macOS SwiftUI 组件之管理复杂NavigatinoView支持多层级导航(教程含源码)

实战需求

macOS SwiftUI 组件之管理复杂NavigatinoView支持多层级导航(教程含源码)

本文价值与收获

看完本文后,您将能够作出下面的界面

macOS SwiftUI 组件之管理复杂NavigatinoView支持多层级导航(教程含源码)_第1张图片
截屏2021-02-11 下午10.59.47.png
Jietu20210211-230026.gif

看完本文您将掌握的技能

  • 掌握@ViewBuilder使用
  • 支持快捷键 .keyboardShortcut("[", modifiers: .command)
  • 设置左右工具条
.toolbar {
                ToolbarItem(placement: .navigation) {
                    Button(action: goBack, label: {
                        Image(systemName: "chevron.left")
                    })
                    .disabled(!canGoBack)
                    .keyboardShortcut("[", modifiers: .command)
                }
                ToolbarItem(placement: .navigation) {
                    Button(action: goForward, label: {
                        Image(systemName: "chevron.right")
                    })
                    .disabled(!canGoForward)
                    .keyboardShortcut("]", modifiers: .command)
                }
            }

基础知识

ViewBuilder

一个自定义参数属性,用于从闭包构造视图。

struct ViewBuilder

总览

您通常将其用作产生子视图的闭合参数的参数属性,从而允许这些闭合提供多个子视图。例如,以下函数接受通过视图构建器生成一个或多个视图的闭包。

func contextMenu(
    @ViewBuilder menuItems: () -> MenuItems
) -> some View

此功能的客户端可以使用多语句闭包来提供多个子视图,如以下示例所示:

myView.contextMenu {
    Text("Cut")
    Text("Copy")
    Text("Paste")
    if isSymbol {
        Text("Jump to Definition")
    }
}

实战代码

你可能感兴趣的:(macOS SwiftUI 组件之管理复杂NavigatinoView支持多层级导航(教程含源码))