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


Swift Never alert(isPresented:error:actions:)用法及代碼示例


實例方法

alert(isPresented:error:actions:)

出現錯誤時顯示警報。

聲明

func alert<E, A>(
    isPresented: Binding<Bool>,
    error: E?,
    actions: () -> A
) -> some View where E : LocalizedError, A : View

參數

isPresented

與確定是否顯示警報的布爾值的綁定。當用戶按下或點擊警報的其中一項操作時,係統將此值設置為false 並關閉。

error

用於生成警報標題的可選本地化錯誤。係統將內容傳遞給修飾符的閉包。您使用此數據來填充您創建的係統向用戶顯示的警報的字段。

actions

A ViewBuilder 返回警報的操作。

詳述

在下麵的示例中,按鈕根據錯誤值有條件地顯示警報。當錯誤值不是 nil 時,係統會顯示帶有 “OK” 操作的警報。

警報的標題是從錯誤的 errorDescription 推斷出來的。


struct TicketPurchaseView: View {
    @Binding var error: TicketPurchaseError?
    @State var showAlert = false
    var body: some View {
        TicketForm(error: $error)
            .alert(isPresented: $showAlert, error: error) {
                Button("OK") {
                    // Handle acknowledgement.
                }
            }
    }
}

警報中的所有操作都會在操作運行後解除警報。默認按鈕顯示得更加突出。您可以通過為其分配KeyboardShortcut/defaultAction 鍵盤快捷鍵來影響默認按鈕。

係統可以根據它們的作用和突出度對按鈕重新排序。

如果不存在任何操作,係統將包含標準的“OK” 操作。沒有提供默認的取消操作。如果要顯示取消操作,請使用角色為 ButtonRole/cancel 的按鈕。

在 iOS、tvOS 和 watchOS 上,警報僅支持標簽為 Text 的控件。傳遞任何其他類型的視圖會導致內容被省略。

此修飾符代表您為標題創建 Text 視圖,並將本地化鍵視為類似於 Text/init(_:tableName:bundle:comment:) 。有關本地化字符串的更多信息,請參閱Text

可用版本

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

相關用法


注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Never alert(isPresented:error:actions:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。