当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Optional confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)用法及代码示例


用法一

实例方法

confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)

显示带有消息的确认对话框,使用数据生成对话框的内容和消息的文本视图。

声明

func confirmationDialog<A, M, T>(
    _ title: Text,
    isPresented: Binding<Bool>,
    titleVisibility: Visibility = .automatic,
    presenting data: T?,
    actions: (T) -> A,
    message: (T) -> M
) -> some View where A : View, M : View

参数

title

对话框的标题。

isPresented

与确定是否显示对话框的布尔值的绑定。当用户按下或点击对话框的默认操作按钮时,系统将此值设置为 false ,关闭对话框。

titleVisibility

对话框标题的可见性。默认值为 Visibility/automatic

data

确认对话框的可选事实来源。系统将内容传递给修饰符的闭包。您使用此数据来填充您创建的系统向用户显示的确认对话框的字段。

actions

给定当前可用数据的视图构建器返回对话框的操作。

message

给定当前可用数据的视图构建器返回对话框的消息。

详述

为了显示接口,isPresented 必须是 true 并且 data 不能是 nildata 不应在演示发生后更改。演示发生后发生的任何更改都将被忽略。

当您需要使用数据源中的内容填充确认对话框的字段时,请使用此方法。下面的示例显示了一个自定义数据源 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)")
            }
            Button("Cancel", role: .cancel) {
                dialogDetail = nil
            }
        } message: { detail in
            Text(
                """
                This will add \(detail.name).\(detail.fileType) \
                to your library.
                """)
        }
    }
}

确认对话框中的所有操作将在操作运行后关闭对话框。默认按钮将显示得更加突出。您可以通过为其分配KeyboardShortcut/defaultAction 键盘快捷键来影响默认按钮。

系统可以根据它们的作用和突出度对按钮重新排序。

默认情况下,对话框包含标准的关闭操作。如果您提供一个角色为 ButtonRole/cancel 的按钮,则该按钮将代替默认的关闭操作。您不必使用取消按钮的操作来关闭演示文稿。

在 iOS、tvOS 和 watchOS 上,确认对话框仅支持标签为 Text 的控件。传递任何其他类型的视图会导致内容被省略。

可用版本

iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+

用法二

实例方法

confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)

显示带有消息的确认对话框,使用数据生成对话框的内容和标题的字符串变量。

声明

func confirmationDialog<S, A, M, T>(
    _ title: S,
    isPresented: Binding<Bool>,
    titleVisibility: Visibility = .automatic,
    presenting data: T?,
    actions: (T) -> A,
    message: (T) -> M
) -> some View where S : StringProtocol, A : View, M : View

参数

title

用作对话框标题的文本字符串。

isPresented

与确定是否显示对话框的布尔值的绑定。当用户按下或点击对话框的默认操作按钮时,系统将此值设置为 false ,关闭对话框。

titleVisibility

对话框标题的可见性。默认值为 Visibility/automatic

data

确认对话框的可选事实来源。系统将内容传递给修饰符的闭包。您使用此数据来填充您创建的系统向用户显示的确认对话框的字段。

actions

给定当前可用数据的视图构建器返回对话框的操作。

message

给定当前可用数据的视图构建器返回对话框的消息。

详述

为了显示接口,isPresented 必须是 true 并且 data 不能是 nildata 不应在演示发生后更改。演示发生后发生的任何更改都将被忽略。

当您需要使用数据源中的内容填充确认对话框的字段时,请使用此方法。下面的示例显示了一个自定义数据源 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)")
            }
            Button("Cancel", role: .cancel) {
                dialogDetail = nil
            }
        } message: { detail in
            Text(
                """
                This will add \(detail.name).\(detail.fileType) \
                to your library.
                """)
        }
    }
}

确认对话框中的所有操作将在操作运行后关闭对话框。默认按钮将显示得更加突出。您可以通过为其分配KeyboardShortcut/defaultAction 键盘快捷键来影响默认按钮。

系统可以根据它们的作用和突出度对按钮重新排序。

默认情况下,对话框包含标准的关闭操作。如果您提供一个角色为 ButtonRole/cancel 的按钮,则该按钮将代替默认的关闭操作。您不必使用取消按钮的操作来关闭演示文稿。

在 iOS、tvOS 和 watchOS 上,确认对话框仅支持标签为 Text 的控件。传递任何其他类型的视图会导致内容被省略。

可用版本

iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+

用法三

实例方法

confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)

显示带有消息的确认对话框,使用数据生成对话框的内容和标题的本地化字符串键。

声明

func confirmationDialog<A, M, T>(
    _ titleKey: LocalizedStringKey,
    isPresented: Binding<Bool>,
    titleVisibility: Visibility = .automatic,
    presenting data: T?,
    actions: (T) -> A,
    message: (T) -> M
) -> some View where A : View, M : View

参数

titleKey

说明对话框标题的本地化字符串的键。

isPresented

与确定是否显示对话框的布尔值的绑定。当用户按下或点击对话框的默认操作按钮时,系统将此值设置为 false ,关闭对话框。

titleVisibility

对话框标题的可见性。默认值为 Visibility/automatic

data

确认对话框的可选事实来源。系统将内容传递给修饰符的闭包。您使用此数据来填充您创建的系统向用户显示的确认对话框的字段。

actions

给定当前可用数据的视图构建器返回对话框的操作。

message

给定当前可用数据的视图构建器返回对话框的消息。

详述

为了显示接口,isPresented 必须是 true 并且 data 不能是 nildata 不应在演示发生后更改。演示发生后发生的任何更改都将被忽略。

当您需要使用数据源中的内容填充确认对话框的字段时,请使用此方法。下面的示例显示了一个自定义数据源 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)")
            }
            Button("Cancel", role: .cancel) {
                dialogDetail = nil
            }
        } message: { detail in
            Text(
                """
                This will add \(detail.name).\(detail.fileType) \
                to your library.
                """)
        }
    }
}

此修饰符代表您为标题创建 Text 视图,并将本地化键视为类似于 Text/init(_:tableName:bundle:comment:) 。有关本地化字符串的更多信息,请参阅Text

确认对话框中的所有操作将在操作运行后关闭对话框。默认按钮将显示得更加突出。您可以通过为其分配KeyboardShortcut/defaultAction 键盘快捷键来影响默认按钮。

系统可以根据它们的作用和突出度对按钮重新排序。

默认情况下,对话框包含标准的关闭操作。如果您提供一个角色为 ButtonRole/cancel 的按钮,则该按钮将代替默认的关闭操作。您不必使用取消按钮的操作来关闭演示文稿。

在 iOS、tvOS 和 watchOS 上,确认对话框仅支持标签为 Text 的控件。传递任何其他类型的视图会导致内容被省略。

可用版本

iOS 15.0+, iPadOS 15.0+, macOS 12.0+, Mac Catalyst 15.0+, tvOS 15.0+, watchOS 8.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。