Instance Method インスタンスメソッド

contextMenu(_:)

Attaches a context menu and its children to the view. あるコンテキストメニューおよびそれの子らをビューに添付します。

Declaration 宣言

func contextMenu<MenuItems>(_ contextMenu: ContextMenu<MenuItems>?) -> some View where MenuItems : View

Return Value 戻り値

A view that adds a contextual menu to this view. あるビュー、それはあるコンテキスト(文脈)によるメニューをこのビューに加えたものです。

Parameters パラメータ

contextMenu

A context menu container for views that you present as menu items in a contextual menu. いくつかのビューに対するあるコンテキストメニューコンテナ、それらはあなたがいくつかのメニュー項目としてあるコンテキストによるメニューの中に提示するものです。

Discussion 議論

Use contextMenu(_:) to attach a contextual menu struct and its children to the view. This modifier allows for the contextual menu to be conditionally available by passing nil as the value for contextMenu. contextMenu(_:)を使って、コンテキストメニューstructおよびそれの子らをビューに添付してください。この修飾子は、そのコンテキストメニューが条件つきで利用可能とされるのを見越しておきます、nilcontextMenuに対する値として渡すことによって。

In the example below a ContextMenu that contains four menu items is created and is passed into the contextMenu(_:) modifier. The attachment of context menu is controlled by the Boolean value shouldShowMenu which is true, enabling the contextual menu. 下の例において4つのメニュー項目を含むContextMenuは、作成されて、そしてcontextMenu(_:)修飾子へと渡されます。コンテキストメニューの添付は、ブール値shouldShowMenuによって制御され、それはtrueであり、コンテキストによるメニューを許可しています。

Note that the actions invoked by the menu selection could be coded directly inside the button closures or, as shown below, invoked via function references. メニュー選択によって発動されるアクションは、直接にボタンクロージャ内部でコード化されるまたは、下で示されるように、関数参照を経由して発動されることができることに注意してください。


func selectHearts() {
    // Act on hearts selection.
}
func selectClubs() { ... }
func selectSpades() { ... }
func selectDiamonds() { ... }


let menuItems = ContextMenu {
    Button("♥️ - Hearts", action: selectHearts)
    Button("♣️ - Clubs", action: selectClubs)
    Button("♠️ - Spades", action: selectSpades)
    Button("♦️ - Diamonds", action: selectDiamonds)
}


struct ContextMenuMenuItems: View {
    private var shouldShowMenu = true
    var body: some View {
        VStack {
            Text("Favorite Card Suit")
                .padding()
                .contextMenu(shouldShowMenu ? menuItems : nil)
        }
    }
}

A screenshot of a context menu showing four menu items: Hearts, Clubs,