用法一
alert(_:isPresented:presenting:actions:message:)
聲明
func alert<S, A, M, T>(
_ title: S,
isPresented: Binding<Bool>,
presenting data: T?,
actions: (T) -> A,
message: (T) -> M
) -> some View where S : StringProtocol, A : View, M : View
參數
title
用作警報標題的文本字符串。
isPresented
與確定是否顯示警報的布爾值的綁定。當用戶按下或點擊警報的其中一項操作時,係統將此值設置為
false
並關閉。data
警報的可選事實來源。係統將內容傳遞給修飾符的閉包。您使用此數據來填充您創建的係統向用戶顯示的警報的字段。
actions
給定當前可用數據的
ViewBuilder
返回警報的操作。message
給定當前可用數據的
ViewBuilder
返回警報消息。
詳述
要顯示警報,isPresented
必須是 true
並且 data
不能是 nil
。演示發生後數據不應更改。您在演示發生後所做的任何更改都將被忽略。
當您需要使用數據源中的內容填充警報的字段時,請使用此方法。下麵的示例顯示了一個自定義數據源 SaveDetails
,它提供數據來填充警報:
struct SaveDetails: Identifiable {
let name: String
let error: String
}
struct SaveView: View {
var title: String
@State var didError = false
@State var details: SaveDetails?
var body: some View {
Button("Save File") {
details = model.save(didError: $didError)
}
.alert(
title, isPresented: $didError, presenting: details
) { detail in
Button(role: .destructive) {
// Handle delete action.
} label: {
Text("""
Delete \(detail.name)
""")
}
Button("Retry") {
// handle retry action.
}
} message: { detail in
Text(detail.error)
}
}
}
警報中的所有操作都會在操作運行後解除警報。默認按鈕顯示得更加突出。您可以通過為其分配KeyboardShortcut/defaultAction
鍵盤快捷鍵來影響默認按鈕。
係統可以根據它們的作用和突出度對按鈕重新排序。
如果不存在任何操作,係統將包含標準的“OK” 操作。沒有提供默認的取消操作。如果要顯示取消操作,請使用角色為 ButtonRole/cancel
的按鈕。
在 iOS、tvOS 和 watchOS 上,警報僅支持標簽為 Text
的控件。傳遞任何其他類型的視圖會導致內容被省略。
消息僅支持未設置樣式的文本。
可用版本
用法二
alert(_:isPresented:presenting:actions:message:)
聲明
func alert<A, M, T>(
_ title: Text,
isPresented: Binding<Bool>,
presenting data: T?,
actions: (T) -> A,
message: (T) -> M
) -> some View where A : View, M : View
參數
title
警報的標題。
isPresented
與確定是否顯示警報的布爾值的綁定。當用戶按下或點擊警報的其中一項操作時,係統將此值設置為
false
並關閉。data
警報的可選事實來源。係統將內容傳遞給修飾符的閉包。您使用此數據來填充您創建的係統向用戶顯示的警報的字段。
actions
給定當前可用數據的
ViewBuilder
返回警報的操作。message
給定當前可用數據的
ViewBuilder
返回警報消息。
詳述
要顯示警報,isPresented
必須是 true
並且 data
不能是 nil
。演示發生後數據不應更改。您在演示發生後所做的任何更改都將被忽略。
當您需要使用數據源中的內容填充警報的字段時,請使用此方法。下麵的示例顯示了一個自定義數據源 SaveDetails
,它提供數據來填充警報:
struct SaveDetails: Identifiable {
let name: String
let error: String
}
struct SaveView: View {
@State var didError = false
@State var details: SaveDetails?
var body: some View {
Button("Save File") {
details = model.save(didError: $didError)
}
.alert(
Text("Saving Failed."), isPresented: $didError,
presenting: details
) { detail in
Button(role: .destructive) {
// Handle delete action.
} label: {
Text("""
Delete \(detail.name)
""")
}
Button("Retry") {
// handle retry action.
}
} message: { detail in
Text(detail.error)
}
}
}
警報中的所有操作都會在操作運行後解除警報。默認按鈕顯示得更加突出。您可以通過為其分配KeyboardShortcut/defaultAction
鍵盤快捷鍵來影響默認按鈕。
係統可以根據它們的作用和突出度對按鈕重新排序。
如果不存在任何操作,係統將包含標準的“OK” 操作。沒有提供默認的取消操作。如果要顯示取消操作,請使用角色為 ButtonRole/cancel
的按鈕。
在 iOS、tvOS 和 watchOS 上,警報僅支持標簽為 Text
的控件。傳遞任何其他類型的視圖會導致內容被省略。
消息僅支持未設置樣式的文本。
可用版本
用法三
alert(_:isPresented:presenting:actions:message:)
聲明
func alert<A, M, T>(
_ titleKey: LocalizedStringKey,
isPresented: Binding<Bool>,
presenting data: T?,
actions: (T) -> A,
message: (T) -> M
) -> some View where A : View, M : View
參數
titleKey
說明警報標題的本地化字符串的鍵。
isPresented
與確定是否顯示警報的布爾值的綁定。當用戶按下或點擊警報的其中一項操作時,係統將此值設置為
false
並關閉。data
警報的可選事實來源。係統將內容傳遞給修飾符的閉包。您使用此數據來填充您創建的係統向用戶顯示的警報的字段。
actions
給定當前可用數據的
ViewBuilder
返回警報的操作。message
給定當前可用數據的
ViewBuilder
返回警報消息。
詳述
要顯示警報,isPresented
必須是 true
並且 data
不能是 nil
。演示發生後數據不應更改。您在演示發生後所做的任何更改都將被忽略。
當您需要使用數據源中的內容填充警報的字段時,請使用此方法。下麵的示例顯示了一個自定義數據源 SaveDetails
,它提供數據來填充警報:
struct SaveDetails: Identifiable {
let name: String
let error: String
}
struct SaveView: View {
@State var didError = false
@State var details: SaveDetails?
var body: some View {
Button("Save File") {
details = model.save(didError: $didError)
}
.alert(
"Saving Failed.", isPresented: $didError,
presenting: details
) { detail in
Button(role: .destructive) {
// Handle delete action.
} label: {
Text("""
Delete \(detail.name)
""")
}
Button("Retry") {
// handle retry action.
}
} message: { detail in
Text(detail.error)
}
}
}
此修飾符代表您為標題創建 Text
視圖,並將本地化鍵視為類似於 Text/init(_:tableName:bundle:comment:)
。有關本地化字符串的更多信息,請參閱Text
。
警報中的所有操作都會在操作運行後解除警報。默認按鈕顯示得更加突出。您可以通過為其分配KeyboardShortcut/defaultAction
鍵盤快捷鍵來影響默認按鈕。
係統可以根據它們的作用和突出度對按鈕重新排序。
如果不存在任何操作,係統將包含標準的“OK” 操作。沒有提供默認的取消操作。如果要顯示取消操作,請使用角色為 ButtonRole/cancel
的按鈕。
在 iOS、tvOS 和 watchOS 上,警報僅支持標簽為 Text
的控件。傳遞任何其他類型的視圖會導致內容被省略。
消息僅支持未設置樣式的文本。
可用版本
相關用法
- Swift Never alert(_:isPresented:presenting:actions:)用法及代碼示例
- Swift Never alert(_:isPresented:actions:)用法及代碼示例
- Swift Never alert(_:isPresented:actions:message:)用法及代碼示例
- Swift Never alert(isPresented:error:actions:message:)用法及代碼示例
- Swift Never alert(isPresented:error:actions:)用法及代碼示例
- Swift Never alignmentGuide(_:computeValue:)用法及代碼示例
- Swift Never allowsTightening(_:)用法及代碼示例
- Swift Never accessibilityAction(action:label:)用法及代碼示例
- Swift Never accessibilityAction(_:_:)用法及代碼示例
- Swift Never autocorrectionDisabled(_:)用法及代碼示例
- Swift Never accessibilityChildren(children:)用法及代碼示例
- Swift Never accessibilityRepresentation(representation:)用法及代碼示例
- Swift Never accessibilityRotor(_:entries:entryID:entryLabel:)用法及代碼示例
- Swift Never accessibilityAction(named:_:)用法及代碼示例
- Swift Never accessibilityChartDescriptor(_:)用法及代碼示例
- Swift Never accessibilityAdjustableAction(_:)用法及代碼示例
- Swift Never accessibilityShowsLargeContentViewer()用法及代碼示例
- Swift Never accessibilityRotor(_:entries:)用法及代碼示例
- Swift Never accessibilityRotor(_:textRanges:)用法及代碼示例
- Swift Never accessibilityRotor(_:entries:entryLabel:)用法及代碼示例
- Swift Never accessibilityScrollAction(_:)用法及代碼示例
- Swift Never aspectRatio(_:contentMode:)用法及代碼示例
- Swift Never accessibilityShowsLargeContentViewer(_:)用法及代碼示例
- Swift Never pageCommand(value:in:step:)用法及代碼示例
- Swift Never opacity(_:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Never alert(_:isPresented:presenting:actions:message:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。