用法一
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
不能是 nil
。 data
不應在演示發生後更改。演示發生後發生的任何更改都將被忽略。
當您需要使用數據源中的內容填充確認對話框的字段時,請使用此方法。下麵的示例顯示了一個自定義數據源 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
的控件。傳遞任何其他類型的視圖會導致內容被省略。
可用版本
用法二
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
不能是 nil
。 data
不應在演示發生後更改。演示發生後發生的任何更改都將被忽略。
當您需要使用數據源中的內容填充確認對話框的字段時,請使用此方法。下麵的示例顯示了一個自定義數據源 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
的控件。傳遞任何其他類型的視圖會導致內容被省略。
可用版本
用法三
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
不能是 nil
。 data
不應在演示發生後更改。演示發生後發生的任何更改都將被忽略。
當您需要使用數據源中的內容填充確認對話框的字段時,請使用此方法。下麵的示例顯示了一個自定義數據源 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
的控件。傳遞任何其他類型的視圖會導致內容被省略。
可用版本
相關用法
- Swift Never confirmationDialog(_:isPresented:titleVisibility:presenting:actions:)用法及代碼示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:actions:)用法及代碼示例
- Swift Never confirmationDialog(_:isPresented:titleVisibility:actions:message:)用法及代碼示例
- Swift Never contextMenu(menuItems:)用法及代碼示例
- Swift Never contentShape(_:_:eoFill:)用法及代碼示例
- Swift Never contrast(_:)用法及代碼示例
- Swift Never controlSize(_:)用法及代碼示例
- Swift Never containerShape(_:)用法及代碼示例
- Swift Never colorMultiply(_:)用法及代碼示例
- Swift Never compositingGroup()用法及代碼示例
- Swift Never cornerRadius(_:antialiased:)用法及代碼示例
- Swift Never colorInvert()用法及代碼示例
- Swift Never coordinateSpace(name:)用法及代碼示例
- Swift Never clipShape(_:style:)用法及代碼示例
- Swift Never clipped(antialiased:)用法及代碼示例
- Swift Never pageCommand(value:in:step:)用法及代碼示例
- Swift Never opacity(_:)用法及代碼示例
- Swift Never accessibilityAction(action:label:)用法及代碼示例
- Swift Never alert(isPresented:error:actions:message:)用法及代碼示例
- Swift Never flipsForRightToLeftLayoutDirection(_:)用法及代碼示例
- Swift Never position(x:y:)用法及代碼示例
- Swift Never position(_:)用法及代碼示例
- Swift Never luminanceToAlpha()用法及代碼示例
- Swift Never accessibilityAction(_:_:)用法及代碼示例
- Swift Never previewDisplayName(_:)用法及代碼示例
注:本文由純淨天空篩選整理自apple.com大神的英文原創作品 Never confirmationDialog(_:isPresented:titleVisibility:presenting:actions:message:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。