实例方法
toolbar(id:
toolbar(id:content:)
使用指定的项目填充工具栏或导航栏,允许用户自定义。
声明
func toolbar<Content>(
id: String,
content: () -> Content
) -> some View where Content : CustomizableToolbarContent
参数
id
此工具栏的唯一标识符。
content
表示工具栏内容的内容。
详述
当您希望允许用户自定义工具栏中元素的组件和布局时,请使用此修饰符。工具栏修饰符需要一个工具栏项目的集合,您可以通过提供一个视图集合来提供这些项目,每个视图都包含在 ToolbarItem
中。
下面的示例创建一个表示每个 ToolbarItem
的视图以及一个唯一标识自定义编辑器的工具栏项的 ID:
struct ToolsEditorView: View {
@State private var text = ""
@State private var bold = false
@State private var italic = false
@State private var fontSize = 12.0
var displayFont: Font {
let font = Font.system(
size: CGFloat(fontSize),
weight: bold == true ? .bold : .regular)
return italic == true ? font.italic() : font
}
var body: some View {
TextEditor(text: $text)
.font(displayFont)
.toolbar(id: "editingtools") {
ToolbarItem(
id: "sizeSelector", placement: .secondaryAction
) {
Slider(
value: $fontSize,
in: 8...120,
minimumValueLabel:
Text("A").font(.system(size: 8)),
maximumValueLabel:
Text("A").font(.system(size: 16))
) {
Text("Font Size (\(Int(fontSize)))")
}
.frame(width: 150)
}
ToolbarItem(
id: "bold", placement: .secondaryAction
) {
Toggle(isOn: $bold) {
Image(systemName: "bold")
}
}
ToolbarItem(
id: "italic", placement: .secondaryAction
) {
Toggle(isOn: $italic) {
Image(systemName: "italic")
}
}
}
.navigationTitle("My Note")
}
}
在 macOS 中,您可以通过使用 Scene/commands(content:)
场景修饰符将 ToolbarCommands
实例添加到场景来启用对工具栏自定义的菜单支持:
@main
struct ToolbarContent_macOSApp: App {
var body: some Scene {
WindowGroup {
ToolsEditorView()
.frame(maxWidth: .infinity, maxHeight: .infinity)
}
.commands {
ToolbarCommands()
}
}
}
当您添加工具栏命令时,系统会在您的应用程序的主菜单中添加一个菜单项,以提供工具栏自定义支持。这是对工具栏上的Control-click 以打开工具栏自定义编辑器的能力的补充。
可用版本
iOS 14.0+, iPadOS 14.0+, macOS 11.0+, Mac Catalyst 14.0+, tvOS 14.0+, watchOS 7.0+
相关用法
- Swift Optional toolbar(content:)用法及代码示例
- Swift Optional touchBarItemPresence(_:)用法及代码示例
- Swift Optional touchBar(_:)用法及代码示例
- Swift Optional touchBar(content:)用法及代码示例
- Swift Optional toggleStyle(_:)用法及代码示例
- Swift Optional touchBarCustomizationLabel(_:)用法及代码示例
- Swift Optional touchBarItemPrincipal(_:)用法及代码示例
- Swift Optional textSelection(_:)用法及代码示例
- Swift Optional tint(_:)用法及代码示例
- Swift Optional tabItem(_:)用法及代码示例
- Swift Optional textContentType(_:)用法及代码示例
- Swift Optional task(priority:_:)用法及代码示例
- Swift Optional transaction(_:)用法及代码示例
- Swift Optional textInputAutocapitalization(_:)用法及代码示例
- Swift Optional truncationMode(_:)用法及代码示例
- Swift Optional tag(_:)用法及代码示例
- Swift Optional transformEffect(_:)用法及代码示例
- Swift Optional task(id:priority:_:)用法及代码示例
- Swift Optional symbolVariant(_:)用法及代码示例
- Swift Optional popover(isPresented:attachmentAnchor:arrowEdge:content:)用法及代码示例
- Swift Optional mask(alignment:_:)用法及代码示例
- Swift Optional listSectionSeparatorTint(_:edges:)用法及代码示例
- Swift Optional badge(_:)用法及代码示例
- Swift Optional fullScreenCover(isPresented:onDismiss:content:)用法及代码示例
- Swift Optional keyboardType(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional toolbar(id:content:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。