用法一
confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)
声明
func confirmationDialog<A, T>(
_ titleKey: LocalizedStringKey,
isPresented: Binding<Bool>,
titleVisibility: Visibility = .automatic,
presenting data: T?,
actions: (T) -> A
) -> some View where A : View
参数
titleKey
说明对话框标题的本地化字符串的键。
isPresented
与确定是否显示对话框的布尔值的绑定。当用户按下或点击对话框的默认操作按钮时,系统将此值设置为
false
,关闭对话框。titleVisibility
对话框标题的可见性。默认值为
Visibility/automatic
。data
确认对话框的可选事实来源。系统将内容传递给修饰符的闭包。您使用此数据来填充您创建的系统向用户显示的确认对话框的字段。
actions
给定当前可用数据的视图构建器返回对话框的操作。
详述
为了显示接口,isPresented
必须是 true
并且 data
不能是 nil
。 data
不应在演示发生后更改。演示发生后发生的任何更改都将被忽略。
当您需要使用数据源中的内容填充确认对话框的字段时,请使用此方法。下面的示例显示了一个自定义数据源 FileDetails
,它提供数据来填充对话框:
struct FileDetails: Identifiable {
var id: String { name }
let name: String
let fileType: UTType
}
struct ConfirmFileImport: View {
@State private var isConfirming = false
@State private var dialogDetail: FileDetails?
var body: some View {
Button("Import File") {
dialogDetail = FileDetails(
name: "MyImageFile.png", fileType: .png)
isConfirming = true
}
.confirmationDialog(
"Are you sure you want to import this file?",
isPresented: $isConfirming, presenting: dialogDetail
) { detail in
Button {
// Handle import action.
} label: {
Text("""
Import \(detail.name)
File Type: \(detail.fileType.description)
""")
}
Button("Cancel", role: .cancel) {
dialogDetail = nil
}
}
}
}
此修饰符代表您为标题创建 Text
视图,并将本地化键视为类似于 Text/init(_:tableName:bundle:comment:)
。有关本地化字符串的更多信息,请参阅Text
。
确认对话框中的所有操作将在操作运行后关闭对话框。默认按钮将显示得更加突出。您可以通过为其分配KeyboardShortcut/defaultAction
键盘快捷键来影响默认按钮。
系统可以根据它们的作用和突出度对按钮重新排序。
默认情况下,对话框包含标准的关闭操作。如果您提供一个角色为 ButtonRole/cancel
的按钮,则该按钮将代替默认的关闭操作。您不必使用取消按钮的操作来关闭演示文稿。
在 iOS、tvOS 和 watchOS 上,确认对话框仅支持标签为 Text
的控件。传递任何其他类型的视图会导致内容被省略。
可用版本
用法二
confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)
声明
func confirmationDialog<S, A, T>(
_ title: S,
isPresented: Binding<Bool>,
titleVisibility: Visibility = .automatic,
presenting data: T?,
actions: (T) -> A
) -> some View where S : StringProtocol, A : View
参数
title
用作对话框标题的文本字符串。
isPresented
与确定是否显示对话框的布尔值的绑定。当用户按下或点击对话框的默认操作按钮时,系统将此值设置为
false
,关闭对话框。titleVisibility
对话框标题的可见性。默认值为
Visibility/automatic
。data
确认对话框的可选事实来源。系统将内容传递给修饰符的闭包。您使用此数据来填充您创建的系统向用户显示的确认对话框的字段。
actions
给定当前可用数据的视图构建器返回对话框的操作。
详述
为了显示接口,isPresented
必须是 true
并且 data
不能是 nil
。 data
不应在演示发生后更改。演示发生后发生的任何更改都将被忽略。
当您需要使用数据源中的内容填充确认对话框的字段时,请使用此方法。下面的示例显示了一个自定义数据源 FileDetails
,它提供数据来填充对话框:
struct FileDetails: Identifiable {
var id: String { name }
let name: String
let fileType: UTType
}
struct ConfirmFileImport: View {
var title: String
@State private var isConfirming = false
@State private var dialogDetail: FileDetails?
var body: some View {
Button("Import File") {
dialogDetail = FileDetails(
name: "MyImageFile.png", fileType: .png)
isConfirming = true
}
.confirmationDialog(
title, isPresented: $isConfirming,
presenting: dialogDetail
) { detail in
Button {
// Handle import action.
} label: {
Text("""
Import \(detail.name)
File Type: \(detail.fileType.description)
""")
}
Button("Cancel", role: .cancel) {
dialogDetail = nil
}
}
}
}
确认对话框中的所有操作将在操作运行后关闭对话框。默认按钮将显示得更加突出。您可以通过为其分配KeyboardShortcut/defaultAction
键盘快捷键来影响默认按钮。
系统可以根据它们的作用和突出度对按钮重新排序。
默认情况下,对话框包含标准的关闭操作。如果您提供一个角色为 ButtonRole/cancel
的按钮,则该按钮将代替默认的关闭操作。您不必使用取消按钮的操作来关闭演示文稿。
在 iOS、tvOS 和 watchOS 上,确认对话框仅支持标签为 Text
的控件。传递任何其他类型的视图会导致内容被省略。
可用版本
用法三
confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)
声明
func confirmationDialog<A, T>(
_ title: Text,
isPresented: Binding<Bool>,
titleVisibility: Visibility = .automatic,
presenting data: T?,
actions: (T) -> A
) -> some View where A : View
参数
title
对话框的标题。
isPresented
与确定是否显示对话框的布尔值的绑定。当用户按下或点击对话框的默认操作按钮时,系统将此值设置为
false
,关闭对话框。titleVisibility
对话框标题的可见性。默认值为
Visibility/automatic
。data
确认对话框的可选事实来源。系统将内容传递给修饰符的闭包。您使用此数据来填充您创建的系统向用户显示的确认对话框的字段。
actions
给定当前可用数据的视图构建器返回对话框的操作。
详述
为了显示接口,isPresented
必须是 true
并且 data
不能是 nil
。 data
不应在演示发生后更改。演示发生后发生的任何更改都将被忽略。
当您需要使用数据源中的内容填充确认对话框的字段时,请使用此方法。下面的示例显示了一个自定义数据源 FileDetails
,它提供数据来填充对话框:
struct FileDetails: Identifiable {
var id: String { name }
let name: String
let fileType: UTType
}
struct ConfirmFileImport: View {
@State private var isConfirming = false
@State private var dialogDetail: FileDetails?
var body: some View {
Button("Import File") {
dialogDetail = FileDetails(
name: "MyImageFile.png", fileType: .png)
isConfirming = true
}
.confirmationDialog(
Text("Import New File?"),
isPresented: $isConfirming, presenting: dialogDetail
) { detail in
Button {
// Handle import action.
} label: {
Text("""
Import \(detail.name)
File Type: \(detail.fileType.description)
""")
}
Button("Cancel", role: .cancel) {
dialogDetail = nil
}
}
}
}
确认对话框中的所有操作将在操作运行后关闭对话框。默认按钮将显示得更加突出。您可以通过为其分配KeyboardShortcut/defaultAction
键盘快捷键来影响默认按钮。
系统可以根据它们的作用和突出度对按钮重新排序。
默认情况下,对话框包含标准的关闭操作。如果您提供一个角色为 ButtonRole/cancel
的按钮,则该按钮将代替默认的关闭操作。您不必使用取消按钮的操作来关闭演示文稿。
在 iOS、tvOS 和 watchOS 上,确认对话框仅支持标签为 Text
的控件。传递任何其他类型的视图会导致内容被省略。
可用版本
相关用法
- Swift Optional confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)用法及代码示例
- Swift Optional confirmationDialog(_:isPresented:titleVisibility:actions:)用法及代码示例
- Swift Optional confirmationDialog(_:isPresented:titleVisibility:actions:message:)用法及代码示例
- Swift Optional contentShape(_:_:eoFill:)用法及代码示例
- Swift Optional controlSize(_:)用法及代码示例
- Swift Optional contrast(_:)用法及代码示例
- Swift Optional containerShape(_:)用法及代码示例
- Swift Optional contextMenu(menuItems:)用法及代码示例
- Swift Optional colorMultiply(_:)用法及代码示例
- Swift Optional cornerRadius(_:antialiased:)用法及代码示例
- Swift Optional colorInvert()用法及代码示例
- Swift Optional coordinateSpace(name:)用法及代码示例
- Swift Optional compositingGroup()用法及代码示例
- Swift Optional clipShape(_:style:)用法及代码示例
- Swift Optional clipped(antialiased:)用法及代码示例
- 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(_:)用法及代码示例
- Swift Optional preferredColorScheme(_:)用法及代码示例
- Swift Optional background(_:ignoresSafeAreaEdges:)用法及代码示例
- Swift Optional saturation(_:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。