当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Optional popover(item:attachmentAnchor:arrowEdge:content:)用法及代码示例


实例方法

popover(item:attachmentAnchor:arrowEdge:content:)

使用给定项目作为弹出框内容的数据源呈现弹出框。

声明

func popover<Item, Content>(
    item: Binding<Item?>,
    attachmentAnchor: PopoverAttachmentAnchor = .rect(.bounds),
    arrowEdge: Edge = .top,
    content: @escaping (Item) -> Content
) -> some View where Item : Identifiable, Content : View

参数

item

绑定到弹出框的可选事实来源。当 item 不是 nil 时,系统会将内容传递给修饰符的闭包。您使用此内容来填充您创建的系统向用户显示的弹出框的字段。如果item 更改,系统将关闭当前呈现的弹出框并使用相同的过程将其替换为新的弹出框。

attachmentAnchor

定义弹出框附着点的定位锚。默认值为 Anchor/Source/bounds

arrowEdge

attachmentAnchor 的边,用于定义 macOS 中弹出框箭头的位置。默认值为 Edge/top 。 iOS 忽略此参数。

content

返回弹出框内容的闭包。

详述

当您需要显示包含自定义数据源内容的弹出框时,请使用此方法。下面的示例使用 PopoverModel 结构中的数据来填充弹出框向用户显示的 content 闭包中的视图:


struct PopoverExample: View {
    @State var popover: PopoverModel?


    var body: some View {
        Button("Show Popover") {
            popover = PopoverModel(message: "Custom Message")
        }
        .popover(item: $popover) { detail in
            Text("\(detail.message)")
                .padding()
        }
    }
}


struct PopoverModel: Identifiable {
    var id: String { message }
    let message: String
}

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional popover(item:attachmentAnchor:arrowEdge:content:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。