用法一
alert(_:isPresented:presenting:actions:)
声明
func alert<A, T>(
_ titleKey: LocalizedStringKey,
isPresented: Binding<Bool>,
presenting data: T?,
actions: (T) -> A
) -> some View where A : View
参数
titleKey
说明警报标题的本地化字符串的键。
isPresented
与确定是否显示警报的布尔值的绑定。当用户按下或点击警报的其中一项操作时,系统将此值设置为
false
并关闭。data
警报的可选事实来源。系统将内容传递给修饰符的闭包。您使用此数据来填充您创建的系统向用户显示的警报的字段。
actions
给定当前可用数据的
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.
}
}
}
}
此修饰符代表您为标题创建 Text
视图,并将本地化键视为类似于 Text/init(_:tableName:bundle:comment:)
。有关本地化字符串的更多信息,请参阅Text
。
警报中的所有操作都会在操作运行后解除警报。默认按钮显示得更加突出。您可以通过为其分配KeyboardShortcut/defaultAction
键盘快捷键来影响默认按钮。
系统可以根据它们的作用和突出度对按钮重新排序。
如果不存在任何操作,系统将包含标准的“OK” 操作。没有提供默认的取消操作。如果要显示取消操作,请使用角色为 ButtonRole/cancel
的按钮。
在 iOS、tvOS 和 watchOS 上,警报仅支持标签为 Text
的控件。传递任何其他类型的视图会导致内容被省略。
可用版本
用法二
alert(_:isPresented:presenting:actions:)
声明
func alert<A, T>(
_ title: Text,
isPresented: Binding<Bool>,
presenting data: T?,
actions: (T) -> A
) -> some View where A : View
参数
title
警报的标题。
isPresented
与确定是否显示警报的布尔值的绑定。当用户按下或点击警报的其中一项操作时,系统将此值设置为
false
并关闭。data
警报的可选事实来源。系统将内容传递给修饰符的闭包。您使用此数据来填充您创建的系统向用户显示的警报的字段。
actions
给定当前可用数据的
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(
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.
}
}
}
}
警报中的所有操作都会在操作运行后解除警报。默认按钮显示得更加突出。您可以通过为其分配KeyboardShortcut/defaultAction
键盘快捷键来影响默认按钮。
系统可以根据它们的作用和突出度对按钮重新排序。
如果不存在任何操作,系统将包含标准的“OK” 操作。没有提供默认的取消操作。如果要显示取消操作,请使用角色为 ButtonRole/cancel
的按钮。
在 iOS、tvOS 和 watchOS 上,警报仅支持标签为 Text
的控件。传递任何其他类型的视图会导致内容被省略。
可用版本
用法三
alert(_:isPresented:presenting:actions:)
声明
func alert<S, A, T>(
_ title: S,
isPresented: Binding<Bool>,
presenting data: T?,
actions: (T) -> A
) -> some View where S : StringProtocol, A : View
参数
title
用作警报标题的文本字符串。
isPresented
与确定是否显示警报的布尔值的绑定。当用户按下或点击警报的其中一项操作时,系统将此值设置为
false
并关闭。data
警报的可选事实来源。系统将内容传递给修饰符的闭包。您使用此数据来填充您创建的系统向用户显示的警报的字段。
actions
给定当前可用数据的
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.
}
}
}
}
警报中的所有操作都会在操作运行后解除警报。默认按钮显示得更加突出。您可以通过为其分配KeyboardShortcut/defaultAction
键盘快捷键来影响默认按钮。
系统可以根据它们的作用和突出度对按钮重新排序。
如果不存在任何操作,系统将包含标准的“OK” 操作。没有提供默认的取消操作。如果要显示取消操作,请使用角色为 ButtonRole/cancel
的按钮。
在 iOS、tvOS 和 watchOS 上,警报仅支持标签为 Text
的控件。传递任何其他类型的视图会导致内容被省略。
可用版本
相关用法
- Swift Never alert(_:isPresented:presenting:actions:message:)用法及代码示例
- 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:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。