实例方法
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 Never toolbar(content:)用法及代码示例
- Swift Never touchBarCustomizationLabel(_:)用法及代码示例
- Swift Never touchBar(content:)用法及代码示例
- Swift Never touchBarItemPrincipal(_:)用法及代码示例
- Swift Never toggleStyle(_:)用法及代码示例
- Swift Never touchBarItemPresence(_:)用法及代码示例
- Swift Never touchBar(_:)用法及代码示例
- Swift Never task(priority:_:)用法及代码示例
- Swift Never tag(_:)用法及代码示例
- Swift Never transformEffect(_:)用法及代码示例
- Swift Never textSelection(_:)用法及代码示例
- Swift Never task(id:priority:_:)用法及代码示例
- Swift Never transaction(_:)用法及代码示例
- Swift Never truncationMode(_:)用法及代码示例
- Swift Never textInputAutocapitalization(_:)用法及代码示例
- Swift Never textContentType(_:)用法及代码示例
- Swift Never tabItem(_:)用法及代码示例
- Swift Never tint(_:)用法及代码示例
- Swift Never pageCommand(value:in:step:)用法及代码示例
- Swift Never opacity(_:)用法及代码示例
- Swift Never colorMultiply(_:)用法及代码示例
- Swift Never accessibilityAction(action:label:)用法及代码示例
- Swift Never alert(isPresented:error:actions:message:)用法及代码示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:actions:)用法及代码示例
- Swift Never flipsForRightToLeftLayoutDirection(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Never toolbar(id:content:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。