當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Swift Never confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)用法及代碼示例


用法一

實例方法

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 不能是 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)
                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 的控件。傳遞任何其他類型的視圖會導致內容被省略。

可用版本

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

用法二

實例方法

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 不能是 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)
                File Type: \(detail.fileType.description)
                """)
            }
            Button("Cancel", role: .cancel) {
                dialogDetail = nil
            }
        }
    }
}

確認對話框中的所有操作將在操作運行後關閉對話框。默認按鈕將顯示得更加突出。您可以通過為其分配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:)

顯示一個確認對話框,使用數據生成對話框的內容和標題的文本視圖。

聲明

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 不能是 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)
                File Type: \(detail.fileType.description)
                """)
            }
            Button("Cancel", role: .cancel) {
                dialogDetail = nil
            }
        }
    }
}

確認對話框中的所有操作將在操作運行後關閉對話框。默認按鈕將顯示得更加突出。您可以通過為其分配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大神的英文原創作品 Never confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。